HDU 1532 最大流,EK算法
来源:互联网 发布:linux上使用telnet 编辑:程序博客网 时间:2024/06/15 09:04
#include <iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<string>#include<queue>#define N 205#define INF 0x7fffffff#define M 505using namespace std;int head[N],cnt;struct edge{ int to,next,cap;}e[M];void init(){ cnt=0; memset(head,-1,sizeof(head));}void addedge(int u,int v,int cap){ e[cnt].to=v;e[cnt].cap=cap;e[cnt].next=head[u];head[u]=cnt++; e[cnt].to=u;e[cnt].cap=0;e[cnt].next=head[v];head[v]=cnt++;}int pre[N],pe[N];queue<int> q;int EK(int s,int t){ int max_flow=0; while(true){ while(!q.empty()){ q.pop(); } memset(pre,-1,sizeof(pre)); q.push(s); while(!q.empty()){ int u=q.front(); q.pop(); for(int i=head[u];i!=-1;i=e[i].next){ int v=e[i].to; if(pre[v]==-1&&e[i].cap>0){ q.push(v); pre[v]=u; pe[v]=i; } } if(pre[t]!=-1) break; } if(pre[t]==-1) break; int aug=INF; for(int v=t;v!=s;v=pre[v]){ aug=min(aug,e[pe[v]].cap); } for(int v=t;v!=s;v=pre[v]){ e[pe[v]].cap-=aug; e[pe[v]^1].cap+=aug; } max_flow+=aug; } return max_flow;}int main(){ int n,m,u,v,cap,ans; while(~scanf("%d%d",&m,&n)){ init(); while(m--){ scanf("%d%d%d",&u,&v,&cap); addedge(u,v,cap); } ans=EK(1,n); printf("%d\n",ans); } return 0;}
0 0
- HDU 1532 最大流,EK算法
- hdu 1532 Drainage Ditches (最大流EK算法)
- hdu 1532 Drainage Ditches (最大流—EK算法)
- HDU 1532 Drainage Ditches——最大流EK算法
- 最大流EK算法
- 最大流EK算法
- 最大流-EK算法
- 最大流-EK算法
- HDU 3549 最大流 EK算法 邻接表实现
- hdu 3549 Flow Problem(最大流EK算法模板)
- HDU 3549 Flow Problem ( 最大流 -EK 算法)
- HDU 3549 Flow Problem【最大流模板题,EK算法】
- 最大流EK算法模板
- 最大流 EK算法详解
- hdu1532 最大流 EK算法
- 图论 最大流EK算法
- 最大网络流 EK 算法
- 最大流之EK算法
- three 20 解析 xml
- nginx无法启动: libpcre.so.1/libpcre.so.0: cannot open shared object file
- 返回序列化后的json字符串长度设置,web.config中
- 外贸网站如何屏蔽中文浏览器和中文操作系统而且自己可以正常访问
- 大数据,还是大错误?(深思)
- HDU 1532 最大流,EK算法
- DELPHI ClientData使用详解
- JSON 字符串 与 java 对象的转换
- spring事务传播及隔离
- 第一次对客户人员进行培训来配合自己的工作感悟
- 写csv文件问题(备忘)
- 反射机制
- android AsyncTask介绍
- 科学解析wifi过敏症