poj1273——最大流
2010-08-17 20:17
441 查看
最大流模板套用!
#include<stdio.h> #include<string.h> #define max 205 int g[max][max]; int f[max][max]; int n,e; int used[max]; int pre[max]; int dp[max]; int queue[max]; int bfs() { int i,j,k,st; int front=0,rear=0; memset(used,0,sizeof(used)); for(i=1;i<=n;i++) { dp[i]=10000001; pre[i]=0; } queue[rear]=1; rear++; used[1]=1; while(front!=rear) { st=queue[front]; front++; for(i=2;i<=n;i++) if(used[i]==0&&g[st][i]&&dp[i]>(g[st][i]<dp[st]?g[st][i]:dp[st])) { used[i]=1; dp[i]=dp[st]<g[st][i]?dp[st]:g[st][i]; pre[i]=st; queue[rear]=i; rear++; if(i==n) return 1; } } return 0; } main() { int i,j,k; int a,c,b; while(scanf("%d%d",&e,&n)!=EOF) { memset(g,0,sizeof(g)); memset(f,0,sizeof(f)); for(i=1;i<=e;i++) { scanf("%d%d%d",&a,&b,&c); g[a][b]+=c; } while(bfs()!=0) { int s=n; while(pre[s]) { f[pre[s]][s]+=dp ; // f[s][pre[s]]=-f[pre[s]][s]; g[pre[s]][s]-=dp ; g[s][pre[s]]+=dp ; s=pre[s]; } } int re=0; for(i=2;i<=n;i++) re+=f[1][i]; printf("%d/n",re); /* for(i=1;i<=n;i++) { for(j=1;j<=n;j++) printf("%d ",g[i][j]); printf("/n"); }*/ } }
相关文章推荐
- poj1273 Drainage Ditches 最大流 dinic算法
- POJ 1273 Drainage Ditches 最大流
- POJ-1273 最大流dinic算法
- poj1273 Drainage Ditches 最大流EK
- poj 1273 Drainage Ditches--最大流--Dinic
- POJ 1273 Drainage Ditches (最大流)
- [poj] 1273 Drainage Ditches[最大流][Ford-Fulkerson]
- poj 1273 Drainage Ditches 【图论-网络流-最大流-Ford-Fulkerson】
- 【最大流FF模板】HDU1532&POJ1273
- POJ-1273 Drainage Ditches(最大流)
- POJ1273--Drainage Ditches(最大流)
- 【最大流】北大 poj 1273 Drainage Ditches
- poj - 1273 - Drainage Ditches(最大流)
- POJ - 1273 Drainage Ditches(最大流)
- POJ 1273 && HDU 1532 Drainage Ditches(最大流-Dinic)
- POJ 1273 Drainage Ditches(网络流-最大流)
- poj 1273 Drainage Ditches(最大流)
- POJ1273 Drainage Ditches——最大流
- POJ 1273 Drainage Ditches (最大流 :Dinic | EK)
- poj 1273 Drainage Ditches---EK求最大流