hdu 1532 Ford-Fullkerson模板 0是原点 m是汇点 最大网络流
#include<iostream> #include <cstdio> #include <string.h> using namespace std; int n,m; int c[201][201]; int maxflow(int s,int t) { int p,q,queue[201],u,v,pre[201]; int flow,aug; flow=0; while(true) { memset(pre,-1,sizeof(pre)); for(queue[p=q=0]=s;p<=q;p++) { u=queue[p]; for(v=0;v<n&&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=0x7fff; 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; } int main() { int s,e,ca; while(scanf("%d%d",&m,&n)!=EOF) { memset(c,0,sizeof(c)); for(int i=0;i<m;i++) { scanf("%d%d%d",&s,&e,&ca); c[s-1][e-1]+=ca; } printf("%d\n",maxflow(0,n-1)); } return 0; }