poj 1273 第1道网络流 Edmonds-Karp算法
2012-03-18 19:30
375 查看
#include<cstdio> #include<cstdlib> #include<memory> #include<cstring> #define maxn 202 #define MAXINT 0x5f5f5f5f using namespace std; int c[maxn][maxn]; int pre[maxn]; int queue[maxn]; int N,M; int EK(int,int); int main(){ while(scanf("%d %d",&N,&M)!=EOF){ int S,E,C; memset(c,0,sizeof(c)); for(int i=0;i<N;i++){ scanf("%d %d %d",&S,&E,&C); c[S][E]+=C; } printf("%d\n",EK(1,M)); } //while(1); return 0; } int EK(int s,int t){ int p,q,u,v,flow=0,aug; while(true){ memset(pre,-1,sizeof(pre)); for(queue[p=q=0]=s;p<=q;p++){ u=queue[p]; for(v=1;v<=M && pre[t]<0 ;v++){ if(c[u][v]>0 && pre[v]<0){ pre[v]=u; queue[++q]=v; } } if(pre[t]>0) break; } if(pre[t]<0) break; aug=MAXINT; for(u=pre[v=t];v!=s;v=u,u=pre[u]){ if(c[u][v]<aug) aug=c[u][v]; } for(u=pre[v=t];v!=s;v=u,u=pre[u]){ c[u][v]-=aug; c[v][u]+=aug; } flow+=aug; } return flow; }
相关文章推荐
- 【POJ 1273 Drainage Ditches】 & 网络流 & Edmonds-Karp算法
- POJ 1273 Drainage Ditches (网络流最大流基础 Edmonds_Karp算法)
- poj 1273 Drainage Ditches ( 最大流--Edmonds_karp算法)
- POJ 1273 Drainage Ditches (最大流问题——Edmonds-Karp算法)
- POJ 3281 Dining (网络流最大流 拆点建图 Edmonds-Karp算法)
- [图论/迭代优化/动态规划]最大流问题 Edmonds-Karp算法(附POJ 1273解题)
- POJ 1273 最大流入门题 Edmonds_Karp算法
- POJ_1273 Drainage Ditches (网络流)
- POJ 1273 Drainage Ditches(初识网络流)
- poj 1273 网络流
- 网络流最经典的入门题 各种网络流算法都能AC。 poj 1273 Drainage Ditches
- poj 1273 hdu 1532 网络流最大流 Dinic算法
- NYOJ 323 && HDU 1532 && POJ 1273 Drainage Ditches (网络流之最大流入门)
- poj1273--Drainage Ditches(最大流Edmond-Karp算法 邻接表实现)
- poj1273 网络流 Dinic
- POJ 1273:Drainage Ditches 网络流模板题
- 网络流-最大流 模板(poj 1273)
- 【网络流】 POJ 1273 Drainage Ditches
- POJ 1273 Drainage Ditches(网络流,最大流)
- 网络流基础学习(Edmonds_Karp算法 )