题目大意:。。。自己看
从源点出发,分别向汇点连两条流量为a和b的边,跑最大流即是a+b。
代码:
#include
#include
#include
#include
#define M 10
#define S 1
#define T 2
#define INF 0x3f3f3f3f
using namespace std;
struct abcd{
int to,f,next;
}table[100];
int head[M],tot=1;
void Add(int x,int y,int z)
{
table[++tot].to=y;
table[tot].f=z;
table[tot].next=head[x];
head[x]=tot;
}
void Link(int x,int y,int z)
{
Add(x,y,z);
Add(y,x,0);
}
namespace Max_Flow{
int dpt[M];
bool BFS()
{
static int q[M];
int i,r=0,h=0;
memset(dpt,-1,sizeof dpt);
q[++r]=S;dpt[S]=1;
while(r!=h)
{
int x=q[++h];
for(i=head[x];i;i=table[i].next)
if(table[i].f&&!~dpt[table[i].to])
{
dpt[table[i].to]=dpt[x]+1;
q[++r]=table[i].to;
if(table[i].to==T)
return true;
}
}
return false;
}
int Dinic(int x,int flow)
{
int i,left=flow;
if(x==T) return flow;
for(i=head[x];i&&left;i=table[i].next)
if(table[i].f&&dpt[table[i].to]==dpt[x]+1)
{
int temp=Dinic(table[i].to,min(left,table[i].f) );
if(!temp) dpt[table[i].to]=-1;
left-=temp;
table[i].f-=temp;
table[i^1].f+=temp;
}
return flow-left;
}
}
int main()
{
using namespace Max_Flow;
int i,x,ans=0;
for(i=1;i<=2;i++)
scanf("%d",&x),Link(S,T,x);
while( BFS() )
ans+=Dinic(S,INF);
cout<
。。。上面那个是开玩笑的
首先考虑朴素一些的做法
将每个点i拆成两个点i和i',i'向i连一条流量为p的边
从S向i连一条流量为w的边 从i向T连一条流量为b的边
如果j选白点i选黑点时i会变得奇♂怪起来的话,就从j到i'连一条流量为INF的边
这样就保证了如果j选择了白色,i就要么选择白色,要么变得奇♂怪
但是这样建图的话,j->i'的边数可以达到O(n^2)
我们可以考虑建一棵权值线段树,从j向相应叶节点连边,从i‘覆盖的区间向i’连边
但是这样做我们无视了j
因此我们将这棵线段树改成可持久化线段树即可
每新建一条链,从旧版本的每个点和点i分别向新建的链上节点连边
然后去上一个版本查询相应区间并连边即可
#include
#include
#include
#include
#define M 200200
#define S 0
#define T 200199
#define INF 0x3f3f3f3f
#define P1(x) ((x)*2-1)
#define P2(x) ((x)<<1)
using namespace std;
int n,m,cnt;
long long ans;
namespace Max_Flow{
struct abcd{
int to,f,next;
}table[1001001];
int head[M],tot=1;
int dpt[M];
void Add(int x,int y,int z)
{
table[++tot].to=y;
table[tot].f=z;
table[tot].next=head[x];
head[x]=tot;
}
void Link(int x,int y,int z)
{
Add(x,y,z);
Add(y,x,0);
}
bool BFS()
{
static int q[M];
int i,r=0,h=0;
memset(dpt,-1,sizeof dpt);
dpt[S]=1;q[++r]=S;
while(r!=h)
{
int x=q[++h];
for(i=head[x];i;i=table[i].next)
if(table[i].f&&!~dpt[table[i].to])
{
dpt[table[i].to]=dpt[x]+1;
q[++r]=table[i].to;
if(table[i].to==T)
return true;
}
}
return false;
}
int Dinic(int x,int flow)
{
int i,left=flow;
if(x==T) return flow;
for(i=head[x];i&&left;i=table[i].next)
if(table[i].f&&dpt[table[i].to]==dpt[x]+1)
{
int temp=Dinic(table[i].to,min(left,table[i].f) );
left-=temp;
table[i].f-=temp;
table[i^1].f+=temp;
}
if(left) dpt[x]=-1;
return flow-left;
}
void DFS(int x)
{
static int v[M];
v[x]=1;
if(x<=n<<1)
printf("%d\n",x+1>>1);
for(int i=head[x];i;i=table[i].next)
if(table[i].f&&!v[table[i].to])
DFS(table[i].to);
}
void Debug()
{
static int s[M],t[M];
int i;
for(i=head[S];i;i=table[i].next)
if(table[i].to<=n<<1)
s[table[i].to+1>>1]=(table[i].f?-1:1);
for(i=head[T];i;i=table[i].next)
if(table[i].to<=n<<1)
t[table[i].to+1>>1]=(table[i^1].f?-1:1);
for(i=1;i<=n;i++)
printf("%d %d %d\n",i,s[i],t[i]);
puts("--------------------------------------");
DFS(S);
puts("--------------------------------------");
for(i=head[P2(6)];i;i=table[i].next)
if(table[i].to==P1(6))
cout<ls=_;
C->rs=__;
C->val=___;
C->num=++cnt;
return C++;
}
Segtree* Build_Tree(int x,int y,int pos,int from)
{
using namespace Max_Flow;
int mid=x+y>>1;
Segtree *re;
if(x==y)
re=new (0x0,0x0,val+1) Segtree;
else if(pos<=mid)
re=new (ls->Build_Tree(x,mid,pos,from),rs,val+1) Segtree;
else
re=new (ls,rs->Build_Tree(mid+1,y,pos,from),val+1) Segtree;
Link(from,re->num,INF);
Link(num,re->num,INF);
return re;
}
void Get_Ans(int x,int y,int l,int r,int to)
{
using namespace Max_Flow;
int mid=x+y>>1;
if(!val) return ;
if(x==l&&y==r)
{
Link(num,to,INF);
return ;
}
if(r<=mid) ls->Get_Ans(x,mid,l,r,to);
else if(l>mid) rs->Get_Ans(mid+1,y,l,r,to);
else ls->Get_Ans(x,mid,l,mid,to),rs->Get_Ans(mid+1,y,mid+1,r,to);
}
}*tree[5050];
int main()
{
using namespace Max_Flow;
int i,a,b,w,l,r,p;
cin>>n;cnt=P2(n);
tree[0]=new (0x0,0x0,0) Segtree;
tree[0]->ls=tree[0]->rs=tree[0];
for(i=1;i<=n;i++)
{
scanf("%d%d%d%d%d%d",&a,&b,&w,&l,&r,&p);
Link(S,P1(i),w);
Link(P1(i),T,b);
tree[i]=tree[i-1]->Build_Tree(0,1000000000,a,P1(i) );
tree[i-1]->Get_Ans(0,1000000000,l,r,P2(i) );
Link(P2(i),P1(i),p);
ans+=w+b;
}
while( BFS() )
ans-=Dinic(S,INF);
//Debug();
cout<
你可能感兴趣的:(网络流,BZOJ,可持久化数据结构,线段树,BZOJ,BZOJ3218,可持久化数据结构,线段树,最小割)
【数据分析】抓包工具的定义常见类型分类使用场景及注意事项
抓包工具的定义常见类型分类使用场景及注意事项-CSDN直播抓包工具的定义常见类型分类使用场景及注意事项抓包工具的定义常见类型分类使用场景及注意事项抓包工具概述抓包工具顾名思义是一种用于捕获并分析网络数据包的软件或硬件工具它能够在数据传输过程中截取并记录网络流量让用户能够深入理解并排查网络问题这类工具的用途广泛从网络安全测试到应用程序调试都离不开抓包工具的帮助在众多的抓包工具中WiresharkFi
5G 承载网中的数学函数
机理分析法,从流量控制、稳定性保障、资源优化和跨层协同四个维度,系统解析5G承载网络中数学函数的作用机制,揭示其如何通过数学建模实现网络性能的动态平衡与优化。一、流量控制函数:网络流建模与路径优化1.组网拓扑与流量函数5G承载网的组网模式(环形、环带链、双归)直接影响流量分布,其数学表征如下:环形组网流量函数:Bi(t)=NB⋅η(t)+ΔBstat(t)B:环网总带宽;N:节点数;η(t)
ELK学习(一) ElasticStack技术栈简介
左边有只汪
ElasticSearch ELK
ELK是由三个技术组成的分别是ElasticSearch核心存储和检索引擎Logstash高吞吐量数据处理引擎Kibana数据可视化主要业务是做日志分析ElasticStack不光是由这几种技术还有新的成员Beats,它可以采集一切数据Beats下还分为以下几个模块FileBeat日志文件PacketBeat网络流量MetricBeat服务指标(CPU,内存情况)WinlogBeatwin日志采集
技战法-态势感知攻击检测
一、背景态势感知在网络安全中至关重要,作为监测预警和信息通报的基础平台,它能实现对整体安全形势的事前预警与事后溯源。在网络安全态势感知平台通过持续监测网络流量,有效掌握公司自身风险特征,致力于构建坚实可靠的网络安全体系。该平台利用智能化分析提升安全监测服务的效率,并通过自动化响应实现安全事件的高效闭环处理。在重大活动或事件中,平台可对企业突发情况进行准确研判,并对重点部位和关键场景及时预警,从而保
【网络抓包】Fiddler工具全攻略:从入门到测试实战
软件测试-阿涛
功能测试 安全测试 功能测试 fiddler 网络安全 测试工具 接口隔离原则
一、Fiddler简介与实现原理1.1工具定位与核心价值Fiddler是一款功能强大的HTTP/HTTPS调试代理工具,以中间人代理模式工作,能够捕获、分析、修改客户端与服务器之间的所有网络流量。其核心价值在于:全链路可见性:实时监控HTTP/HTTPS请求与响应细节,包括headers、body、Cookie、缓存等;灵活的流量控制:支持断点调试、请求重放、数据篡改,助力接口测试与问题定位;多场
网络安全中的安全巡检:步骤、重点、文档需求与实际案例解析
目录️♂️一、什么是网络安全中的安全巡检?1.1定义1.2目的1.3范围二、安全巡检的详细步骤与重点2.1制定巡检计划与范围2.2信息收集与系统审计2.3漏洞扫描与漏洞验证2.4权限检查与身份管理审计2.5网络流量监控与日志审计2.6安全配置检查与补丁管理2.7安全事件响应与漏洞修复三、安全巡检中文档需求来源3.1合规性要求3.2公司内部安全政策3.3行业最佳实践四、真实案例4.1案例:银行内部
Wireshark 中的常见接口类型
vvandre
网络安全与逆向工程专栏 wireshark 服务器 测试工具
在网络封包分析工具Wireshark中,“接口类型”指的是数据包捕获源的类型,也就是你告诉Wireshark从哪个“地方”抓取网络流量。这与你计算机或网络环境中实际存在的各种网络接口(物理的或虚拟的)以及Wireshark提供的特殊捕获机制相对应。当你启动Wireshark或点击“捕获>选项”(Capture>Options)时,弹出的“选择捕获接口”对话框(通常显示接口列表和实时流量图)中列出的
IDC机房服务器托管的费用组成
wayuncn
服务器租用托管 服务器 github 运维
IDC机房服务器托管的费用,并不是只有我们所想的电费而已,还有一些其它费用组成,详细来看:1.机位费用:-机位费用是根据服务器的尺寸和占用的空间来计算的。服务器通常按照U(Unit)的高度来衡量,例如1U、2U、4U等。不同尺寸的服务器占用的空间不同,费用也会相应变化。2.带宽使用:-IDC机房通常提供不同的带宽套餐供客户选择。费用取决于你所需的网络流量和带宽速度。一些机房可能提供固定带宽费用,而
莫队算法
christ_lrs
学习笔记 分块
莫队算法,是由莫涛队长提出的,能够以玄学的复杂度处理区间查询类的问题。也可以说,他使用来解决线段树等数据结构不好维护的区间查询问题。莫队简介在莫涛提出莫队算法之前,莫队算法已经在CodeforcesCodeforcesCodeforces的高手圈里小范围流传,但是莫涛是第一个对莫队算法进行详细归纳总结的人。莫涛提出莫队算法时,只分析了普通莫队算法;但经过高手们改造,莫队便有了多种扩展版本。普通莫队
车辆云端威胁情报共享系统的多维解析与发展路径
百态老人
大数据 人工智能
第一部分:内容本质提取原始内容描述了一个闭环网络安全体系:“车辆实时上传异常行为日志至安全运营中心(VSOC),云端通过机器学习分析攻击模式并下发全局防御策略”。其核心架构包含:数据采集层:车辆端持续收集异常行为日志数据,包含CAN总线通信模式、网络流量特征及驾驶行为数据传输层:通过V2X通信协议和OTA更新通道实现车云双向通信分析层:安全运营中心(VSOC)采用CNN-BiSRU等深度学习模型进
深度解读:路由交换、负载均衡与防火墙的网络交响
xixixi77777
防火墙 负载均衡 路由交换
一、路由交换:网络流动的“大动脉”1.路由:决定命运的“路径规划师”路由技术如同现代交通网络中的导航系统,决定了数据从起点到终点的最佳路径。路由器基于网络层IP地址,对每个数据包进行精确的路径选择,并确保其在多层网络中实现无缝传输。其核心机制是通过路由协议,如OSPF、BGP等,动态计算网络拓扑的最佳路径。OSPF(开放最短路径优先):内部网关协议,通过链路状态信息迅速感知网络变化,在大型企业网络
网络安全-动态风险评估工作原理、详细过程和架构及案例
hao_wujing
web安全 架构 安全
大家读完觉得有帮助记得关注和点赞!!!动态风险评估(DynamicRiskAssessment,DRA)是一种通过实时数据采集、AI分析和闭环反馈实现风险持续演算的主动防御技术。以下从工作原理、详细过程、架构设计及行业案例展开系统性解析:一、核心工作原理1.多源数据融合与实时感知异构数据采集:整合网络流量、端点行为、环境变量(如设备指纹、地理位置)、业务日志等多维数据,构建动态基线15。环境感知驱
C++数据结构————二叉树
Гений.大天才
C++语言入门以及基础算法 c++ 数据结构 开发语言
【前言】在数据结构与算法的世界里,二叉树(BinaryTree)始终占据着核心地位。它既是众多高级树形结构(B+树、红黑树、线段树、字典树……)的“基因”,又是面试、竞赛与工程实战中绕不开的考点。本文将用大约2万字的篇幅,从“零”开始,把C++二叉树的所有常见形态、常见算法、常见坑点与常见优化一次性讲透。全文配套可编译运行的C++17/20代码2000余行,所有示例均在GCC13/Clang17/
Tcpdump使用
一介绍tcpdump,是Linux/Unix系统下强大的网络抓包工具,能够捕获和分析网络流量。用简单的语言概括就是dumpthetrafficonanetwork,是一个运行在linux平台可以根据使用者需求对网络上传输的数据包进行捕获的抓包工具,windows平台有sniffer等工具,tcpdump可以将网络中传输的数据包的“包头”全部捕获过来进程分析,其支持网络层、特定的传输协议、数据发送和
11. TCP 滑动窗口、拥塞控制是什么,有什么区别
yqcoder
前端面试-服务协议 tcp/ip 网络 php
总结滑动窗口:早期网络,通信双方不考虑网络拥挤情况,导致掉包。滑动窗口大小意味着有多少缓冲区接受数据。拥塞控制:防止过多数据注入网络中,拥塞控制是一个全局过程,控制网络流量。区别:滑动窗口解决掉包问题,拥塞控制解决网络拥塞问题。TCP滑动窗口与拥塞控制详解在TCP协议中,为了实现可靠传输和高效通信,引入了两个核心机制:滑动窗口(SlidingWindow)和拥塞控制(CongestionContr
网安学习NO.12
下一代防火墙(Next-GenerationFirewall,简称NGFW)是在传统防火墙基础上发展而来的新一代网络安全防护设备,其核心目标是解决传统防火墙在复杂网络环境(如云计算、移动办公、加密流量激增等)中“防护维度不足、威胁识别滞后、功能单一”等痛点,通过融合多元安全能力,实现对网络流量更精准、更智能、更全面的管控与防御。一、下一代防火墙与传统防火墙的核心差异传统防火墙主要依赖“端口-协议”
计算机网络 1.2.2 1.2.3 OSI参考模型
chin”
计算机网络 网络
计算机网络1.2.21.2.3OSI参考模型1、计算机网络分层结构法定标准事实标准最终演化OSI七层参考模型4层TCP/IP模型5层体系结构解决计算机网络的大问题====>分层结构(按功能)OSI七层模型:物联网淑慧适用(上四层端到端,下四层点到点)2、OSI七层模型各层的作用应用层:(用户与网络的界面)所有能和用户交互,并能产生网络流量的程序(FTPSMTPHTTP)传输单位是报文表示层:处理通
大带宽服务器中冗余技术的功能
wanhengidc
服务器 运维
随着企业对于网络流量需求的逐渐激增,在业务运行的稳定性要求也在不断提高,大带宽服务器作为支撑高负载应用的基础设施,为了能够保障业务的正常运行,大带宽服务器中的冗余设计起着关键的作用,合理的冗余机制,能够在发生网络故障的情况下,依旧确保业务的可用性。下面,我们就来共同了解一下大带宽服务器中冗余技术的功能都有哪些吧!大带宽服务器中的冗余设计是指通过配置多个物理或者逻辑网络连接,保证待单一链路发生故障时
如何利用Charles中文版抓包工具提升API调试与网络性能
在现代软件开发中,调试网络请求、优化API接口的性能是开发者面临的日常挑战之一。特别是在处理复杂的API请求和确保应用的响应速度时,开发者需要借助高效的工具来快速捕获和分析网络流量。Charles抓包工具,以其强大的功能和简易的操作,成为开发者调试和优化API接口、提升应用性能的得力助手。本文将介绍如何利用Charles中文版抓包工具提升API调试效率,捕获并分析HTTP/HTTPS流量,同时优化
【机器学习笔记 Ⅲ】3 异常检测算法
巴伦是只猫
机器学习 机器学习 笔记 算法
异常检测算法(AnomalyDetection)详解异常检测是识别数据中显著偏离正常模式的样本(离群点)的技术,广泛应用于欺诈检测、故障诊断、网络安全等领域。以下是系统化的解析:1.异常类型类型描述示例点异常单个样本明显异常信用卡交易中的天价消费上下文异常在特定上下文中异常(如时间序列)夏季气温突降至零下集体异常一组相关样本联合表现为异常网络流量中突然的DDOS攻击流量2.常用算法(1)基于统计的
Charles中文版抓包工具:提升网络请求调试与API性能的高效工具
在当今的软件开发过程中,调试网络请求和优化API性能是保证应用顺畅运行和提高用户体验的关键。对于开发者来说,能够高效捕捉和分析HTTP/HTTPS请求的工具是必不可少的。Charles抓包工具作为一款广受欢迎的网络调试工具,提供了强大的功能来帮助开发者分析网络流量、优化API性能并提高开发效率。本文将深入探讨如何利用Charles中文版抓包工具加速网络请求调试、提升API性能,并通过有效的功能实现
【计算机三级】网路技术学习笔记 第二章 中小型网络系统总体规划与设计
努力的小刘@
计算机等级考试 网络 计算机网络 网络协议
计算机三级网络技术二、中小型网络系统总体规划与设计考点(一):网络总体设计基本方法1.核心层网络结构设计整个网络系统的主干部分是核心层网络,是设计与建设的重点,目前应用于核心层网络的技术标准主意要是GE/10GE,核心设备是高性能路由器,连接核心路由器的是具有冗余链路的光纤,整个网络流量的40%-60%都需要有核心层网络来承载直接接入核心路由器采取链路冗余的办法,直接连接两台核心路由器,其特点是直
网络基础知识点总结(三)
1.给客户推荐交换机时,从哪些方面进行选型考虑2.MTBF是什么,MTTR是什么MTBF:平均故障时间MTTR:平均故障修复时间3.常见的网络可靠技术1)入侵检测技术IDS(入侵检测系统):被动监听网络流量,分析异常行为或特征,发现攻击后仅生成告警,不主动干预。IPS(入侵防御系统):串联在网络链路中,实时检测并主动阻断恶意流量,具备“检测+响应”的主动防御能力。2)访问控制技术(如:ACL)3)
如何检测DDoS攻击?
西里网
西里.中国 ddos
参考资料waf防爬虫简介阻止恶意HTTP/HTTPS流量来保护网站安全推荐一些DDoS攻击防护的工具WAF防护简介waf防ddos简介如何检测DDoS攻击?waf防火墙和web防火墙区别混合DDoS攻击方式结合多种攻击DDoS攻击检测方法1.流量监控与分析网络流量基线:建立正常流量基准,检测异常流量波动(如突发性流量激增)。流量来源分析:检查是否来自单一IP、特定ASN或地理区域的大规模请求。协议
Nmon:Linux和AIX系统性能监控与压力测试指南
狗雄
本文还有配套的精品资源,点击获取简介:Nmon是一款适用于Linux和IBMAIX系统的强大性能监控工具,能够实时监控CPU、内存、磁盘I/O、网络流量等关键指标。它支持压力测试、故障排查、容量规划和报告生成,提供定制化的性能监控与数据导出功能。在AIX系统上,Nmon有助于监测CPU利用率、内存管理、磁盘性能和网络活动。本指南详细介绍了nmon的用途、功能特性、版本特定文件和使用步骤,为系统管理
如何在 Ubuntu 20.04 上使用 UFW 来设置防火墙
GNET0328
ubuntu linux 运维
防火墙是一个用来监视和过滤进出网络流量的工具。它通过定义一系列安全规则,来决定是否允许或者屏蔽指定的流量。Ubuntu自带的防火墙配置工具被称为UFW(UncomplicatedFirewall)。UFW是一个用来管理iptables防火墙规则的用户友好的前端工具。它的主要目的就是为了使得管理iptables更简单,就像名字所说的,简单的。本文描述如何在Ubuntu20.04上使用UFW工具来配置
Linux防火墙介绍
3.1防火墙基础概念防火墙是一种用于控制网络流量进出主机或网络的安全设备或软件。它通过设定规则,允许或阻止特定的数据包,从而保护系统免受未授权访问和网络攻击。作用:隔离内外网、限制端口访问、阻止恶意流量类型:主机防火墙(如Linux的firewalld、iptables)、网络防火墙(如硬件防火墙设备)3.2firewalld的zone(区域)firewalld提供多种zone(区域),每种区域代
Python,Go开发数据流量分配查询APP
Geeker-2025
python golang
#数据流量分配查询应用我将设计一个基于Python和Go开发的数据流量分配查询应用,帮助用户监控和分析网络流量分配情况。##设计思路这个应用将实现以下核心功能:-实时监控网络流量分配情况-多维度流量数据分析(设备、应用、时间段)-流量分配策略设置与管理-异常流量告警系统-直观的数据可视化展示##技术架构```前端(Python+Streamlit)后端(Go)┌──────────────────
P1967 [NOIP 2013 提高组] 货车运输(树链剖分+线段树)
gw_water
cocoa c++ 算法 贪心算法 数据结构
文章目录题目要求一、解题思路二、解题过程1.数据结构2.求最小生成树(Kruskal算法)2.答案计算(TCD+SegementTree)AC代码题目要求A国有n座城市,编号从1到n,城市之间有m条双向道路。每一条道路对车辆都有重量限制,简称限重。现在有q辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多能运多重的货物。一、解题思路本题求一条路径,使得其在不超过限制重量的前提下,载
安全对抗相关技术和概念的总结和分析
frhdd
安全
流量对抗与行为对抗流量对抗核心目标:规避通过网络流量分析进行的恶意行为检测。关键点:流量加密:通过SSL/TLS或自定义加密协议,隐藏网络通信内容。流量伪装:模拟合法流量模式(如HTTP、HTTPS流量),降低被发现的可能性。流量随机化:动态改变通信的大小、时间间隔和模式,避免流量特征被检测到。行为对抗核心目标:规避基于行为检测的杀软和EDR(EndpointDetectionandRespons
深入浅出Java Annotation(元注解和自定义注解)
Josh_Persistence
Java Annotation 元注解 自定义注解
一、基本概述
Annontation是Java5开始引入的新特征。中文名称一般叫注解。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。
更通俗的意思是为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且是供指定的工具或
mysql优化特定类型的查询
annan211
java 工作 mysql
本节所介绍的查询优化的技巧都是和特定版本相关的,所以对于未来mysql的版本未必适用。
1 优化count查询
对于count这个函数的网上的大部分资料都是错误的或者是理解的都是一知半解的。在做优化之前我们先来看看
真正的count()函数的作用到底是什么。
count()是一个特殊的函数,有两种非常不同的作用,他可以统计某个列值的数量,也可以统计行数。
在统
MAC下安装多版本JDK和切换几种方式
棋子chessman
jdk
环境:
MAC AIR,OS X 10.10,64位
历史:
过去 Mac 上的 Java 都是由 Apple 自己提供,只支持到 Java 6,并且OS X 10.7 开始系统并不自带(而是可选安装)(原自带的是1.6)。
后来 Apple 加入 OpenJDK 继续支持 Java 6,而 Java 7 将由 Oracle 负责提供。
在终端中输入jav
javaScript (1)
Array_06
JavaScript java 浏览器
JavaScript
1、运算符
运算符就是完成操作的一系列符号,它有七类: 赋值运算符(=,+=,-=,*=,/=,%=,<<=,>>=,|=,&=)、算术运算符(+,-,*,/,++,--,%)、比较运算符(>,<,<=,>=,==,===,!=,!==)、逻辑运算符(||,&&,!)、条件运算(?:)、位
国内顶级代码分享网站
袁潇含
java jdk oracle .net PHP
现在国内很多开源网站感觉都是为了利益而做的
当然利益是肯定的,否则谁也不会免费的去做网站
&
Elasticsearch、MongoDB和Hadoop比较
随意而生
mongodb hadoop 搜索引擎
IT界在过去几年中出现了一个有趣的现象。很多新的技术出现并立即拥抱了“大数据”。稍微老一点的技术也会将大数据添进自己的特性,避免落大部队太远,我们看到了不同技术之间的边际的模糊化。假如你有诸如Elasticsearch或者Solr这样的搜索引擎,它们存储着JSON文档,MongoDB存着JSON文档,或者一堆JSON文档存放在一个Hadoop集群的HDFS中。你可以使用这三种配
mac os 系统科研软件总结
张亚雄
mac os
1.1 Microsoft Office for Mac 2011
大客户版,自行搜索。
1.2 Latex (MacTex):
系统环境:https://tug.org/mactex/
&nb
Maven实战(四)生命周期
AdyZhang
maven
1. 三套生命周期 Maven拥有三套相互独立的生命周期,它们分别为clean,default和site。 每个生命周期包含一些阶段,这些阶段是有顺序的,并且后面的阶段依赖于前面的阶段,用户和Maven最直接的交互方式就是调用这些生命周期阶段。 以clean生命周期为例,它包含的阶段有pre-clean, clean 和 post
Linux下Jenkins迁移
aijuans
Jenkins
1. 将Jenkins程序目录copy过去 源程序在/export/data/tomcatRoot/ofctest-jenkins.jd.com下面 tar -cvzf jenkins.tar.gz ofctest-jenkins.jd.com &
request.getInputStream()只能获取一次的问题
ayaoxinchao
request Inputstream
问题:在使用HTTP协议实现应用间接口通信时,服务端读取客户端请求过来的数据,会用到request.getInputStream(),第一次读取的时候可以读取到数据,但是接下来的读取操作都读取不到数据
原因: 1. 一个InputStream对象在被读取完成后,将无法被再次读取,始终返回-1; 2. InputStream并没有实现reset方法(可以重
数据库SQL优化大总结之 百万级数据库优化方案
BigBird2012
SQL优化
网上关于SQL优化的教程很多,但是比较杂乱。近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充。
这篇文章我花费了大量的时间查找资料、修改、排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到、纠正以及补充。
1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引。
2.应尽量避免在 where
jsonObject的使用
bijian1013
java json
在项目中难免会用java处理json格式的数据,因此封装了一个JSONUtil工具类。
JSONUtil.java
package com.bijian.json.study;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
[Zookeeper学习笔记之六]Zookeeper源代码分析之Zookeeper.WatchRegistration
bit1129
zookeeper
Zookeeper类是Zookeeper提供给用户访问Zookeeper service的主要API,它包含了如下几个内部类
首先分析它的内部类,从WatchRegistration开始,为指定的znode path注册一个Watcher,
/**
* Register a watcher for a particular p
【Scala十三】Scala核心七:部分应用函数
bit1129
scala
何为部分应用函数?
Partially applied function: A function that’s used in an expression and that misses some of its arguments.For instance, if function f has type Int => Int => Int, then f and f(1) are p
Tomcat Error listenerStart 终极大法
ronin47
tomcat
Tomcat报的错太含糊了,什么错都没报出来,只提示了Error listenerStart。为了调试,我们要获得更详细的日志。可以在WEB-INF/classes目录下新建一个文件叫logging.properties,内容如下
Java代码
handlers = org.apache.juli.FileHandler, java.util.logging.ConsoleHa
不用加减符号实现加减法
BrokenDreams
实现
今天有群友发了一个问题,要求不用加减符号(包括负号)来实现加减法。
分析一下,先看最简单的情况,假设1+1,按二进制算的话结果是10,可以看到从右往左的第一位变为0,第二位由于进位变为1。
 
读《研磨设计模式》-代码笔记-状态模式-State
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
/*
当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类
状态模式主要解决的是当控制一个对象状态的条件表达式过于复杂时的情况
把状态的判断逻辑转移到表示不同状态的一系列类中,可以把复杂的判断逻辑简化
如果在
CUDA程序block和thread超出硬件允许值时的异常
cherishLC
CUDA
调用CUDA的核函数时指定block 和 thread大小,该大小可以是dim3类型的(三维数组),只用一维时可以是usigned int型的。
以下程序验证了当block或thread大小超出硬件允许值时会产生异常!!!GPU根本不会执行运算!!!
所以验证结果的正确性很重要!!!
在VS中创建CUDA项目会有一个模板,里面有更详细的状态验证。
以下程序在K5000GPU上跑的。
诡异的超长时间GC问题定位
chenchao051
jvm cms GC hbase swap
HBase的GC策略采用PawNew+CMS, 这是大众化的配置,ParNew经常会出现停顿时间特别长的情况,有时候甚至长到令人发指的地步,例如请看如下日志:
2012-10-17T05:54:54.293+0800: 739594.224: [GC 739606.508: [ParNew: 996800K->110720K(996800K), 178.8826900 secs] 3700
maven环境快速搭建
daizj
安装 mavne 环境配置
一 下载maven
安装maven之前,要先安装jdk及配置JAVA_HOME环境变量。这个安装和配置java环境不用多说。
maven下载地址:http://maven.apache.org/download.html,目前最新的是这个apache-maven-3.2.5-bin.zip,然后解压在任意位置,最好地址中不要带中文字符,这个做java 的都知道,地址中出现中文会出现很多
PHP网站安全,避免PHP网站受到攻击的方法
dcj3sjt126com
PHP
对于PHP网站安全主要存在这样几种攻击方式:1、命令注入(Command Injection)2、eval注入(Eval Injection)3、客户端脚本攻击(Script Insertion)4、跨网站脚本攻击(Cross Site Scripting, XSS)5、SQL注入攻击(SQL injection)6、跨网站请求伪造攻击(Cross Site Request Forgerie
yii中给CGridView设置默认的排序根据时间倒序的方法
dcj3sjt126com
GridView
public function searchWithRelated() {
$criteria = new CDbCriteria;
$criteria->together = true; //without th
Java集合对象和数组对象的转换
dyy_gusi
java集合
在开发中,我们经常需要将集合对象(List,Set)转换为数组对象,或者将数组对象转换为集合对象。Java提供了相互转换的工具,但是我们使用的时候需要注意,不能乱用滥用。
1、数组对象转换为集合对象
最暴力的方式是new一个集合对象,然后遍历数组,依次将数组中的元素放入到新的集合中,但是这样做显然过
nginx同一主机部署多个应用
geeksun
nginx
近日有一需求,需要在一台主机上用nginx部署2个php应用,分别是wordpress和wiki,探索了半天,终于部署好了,下面把过程记录下来。
1. 在nginx下创建vhosts目录,用以放置vhost文件。
mkdir vhosts
2. 修改nginx.conf的配置, 在http节点增加下面内容设置,用来包含vhosts里的配置文件
#
ubuntu添加admin权限的用户账号
hongtoushizi
ubuntu useradd
ubuntu创建账号的方式通常用到两种:useradd 和adduser . 本人尝试了useradd方法,步骤如下:
1:useradd
使用useradd时,如果后面不加任何参数的话,如:sudo useradd sysadm 创建出来的用户将是默认的三无用户:无home directory ,无密码,无系统shell。
顾应该如下操作:
第五章 常用Lua开发库2-JSON库、编码转换、字符串处理
jinnianshilongnian
nginx lua
JSON库
在进行数据传输时JSON格式目前应用广泛,因此从Lua对象与JSON字符串之间相互转换是一个非常常见的功能;目前Lua也有几个JSON库,本人用过cjson、dkjson。其中cjson的语法严格(比如unicode \u0020\u7eaf),要求符合规范否则会解析失败(如\u002),而dkjson相对宽松,当然也可以通过修改cjson的源码来完成
Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
yaerfeng1989
timer quartz 定时器
原创整理不易,转载请注明出处:Spring定时器配置的两种实现方式OpenSymphony Quartz和java Timer详解
代码下载地址:http://www.zuidaima.com/share/1772648445103104.htm
有两种流行Spring定时器配置:Java的Timer类和OpenSymphony的Quartz。
1.Java Timer定时
首先继承jav
Linux下df与du两个命令的差别?
pda158
linux
一、df显示文件系统的使用情况,与du比較,就是更全盘化。 最经常使用的就是 df -T,显示文件系统的使用情况并显示文件系统的类型。 举比例如以下: [root@localhost ~]# df -T Filesystem Type &n
[转]SQLite的工具类 ---- 通过反射把Cursor封装到VO对象
ctfzh
VO android sqlite 反射 Cursor
在写DAO层时,觉得从Cursor里一个一个的取出字段值再装到VO(值对象)里太麻烦了,就写了一个工具类,用到了反射,可以把查询记录的值装到对应的VO里,也可以生成该VO的List。
使用时需要注意:
考虑到Android的性能问题,VO没有使用Setter和Getter,而是直接用public的属性。
表中的字段名需要和VO的属性名一样,要是不一样就得在查询的SQL中
该学习笔记用到的Employee表
vipbooks
oracle sql 工作
这是我在学习Oracle是用到的Employee表,在该笔记中用到的就是这张表,大家可以用它来学习和练习。
drop table Employee;
-- 员工信息表
create table Employee(
-- 员工编号
EmpNo number(3) primary key,
-- 姓