网络流Dinic模板 1.2正式版
来源:互联网 发布:淘宝2016年销售额 编辑:程序博客网 时间:2024/05/16 18:22
#define INF 2000000000#define typec int//type of costconst int pN=600000,eN=3000000;struct Edge{int u,v,next;typec w;};Edge edge[eN];int en,head[pN],cur[pN],ps[pN],dep[pN];void insert(int u,int v,typec w){edge[en].u=u;edge[en].v=v;edge[en].w=w;edge[en].next=head[u];head[u]=en++;edge[en].u=v;edge[en].v=u;edge[en].w=0;//有向为0,无向为wedge[en].next=head[v];head[v]=en++;}typec max_flow(int n,int s,int t){typec tr,res=0;int i,j,k,f,r,top;while(1){memset(dep,-1,n*sizeof(int));for(f=dep[ps[0]=s]=0,r=1;f!=r;)for(i=ps[f++],j=head[i];j!=-1;j=edge[j].next){if(edge[j].w&&-1==dep[k=edge[j].v]){dep[k]=dep[i]+1;ps[r++]=k;if(k==t){f=r;break;}}}if(-1==dep[t])break;memcpy(cur,head,n*sizeof(int));for(i=s,top=0;;){if(i==t){for(k=0,tr=INF;k<top;++k)if(edge[ps[k]].w<tr)tr=edge[ps[f=k]].w;for(k=0;k<top;++k)edge[ps[k]].w-=tr,edge[ps[k]^1].w+=tr;res+=tr;i=edge[ps[top=f]].u;}for(j=cur[i];cur[i]!=-1;j=cur[i]=edge[cur[i]].next)if(edge[j].w&&dep[i]+1==dep[edge[j].v])break;if(cur[i]!=-1){ps[top++]=cur[i];i=edge[cur[i]].v;}else{if(0==top)break;dep[i]=-1;i=edge[ps[--top]].u;}}}return res;}
- 网络流Dinic模板 1.2正式版
- 网络流模板--dinic
- 网络流Dinic模板
- 【模板】dinic(网络流)
- {模板}网络流Dinic
- 网络流dinic模板
- dinic 网络流模板
- 网络流dinic模板
- 网络流Dinic模板
- 网络流dinic模板更新...
- 网络流GAP dinic模板
- 网络流模板 Dinic+ISAP
- 网络流dinic模板 hdu3549
- 网络流Dinic模板 QQQ
- 网络最大流(dinic)【模板】
- HDU 1569 网络流dinic 模板
- 网络流Dinic邻接表(模板)--hdu4280
- 网络流Dinic算法详解及模板
- 关于枚举的一个实例
- Android客户端与服务器端通过DES加密认证
- 西安长安大道即将通车
- 架设 gitolite 服务器
- subclipse密码重置
- 网络流Dinic模板 1.2正式版
- emp命令
- 批处理 Nul用法(不一定正确)
- SQL 根据一个表更新另一个表的内容
- 英语口语8000句-谚语、惯用语
- Damn it, get refused
- 智力题II
- HOWTO_install uuencode
- Android模拟 HTTP multipart/form-data 请求协议信息实现图片上传