标签:max one nat layout ble eof other string cap
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 15853 Accepted Submission(s): 7544
#include<iostream> #include<cstdio> #include<cstring> #include<queue> using namespace std; #define N 200 #define LL long long #define INF 2000000005 queue<int>q; int flow[N][N]; int cap[N][N]; int main() { int n,m; while(scanf("%d%d",&n,&m)!=EOF) { memset(cap,0,sizeof(cap)); for(int i=0; i<n; i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); if(cap[a][b]==0) { cap[a][b]=c; } else { cap[a][b]+=c; } } while(!q.empty()) q.pop(); int totf=0; int p[N]; memset(flow,0,sizeof(flow)); for(;;) { int a[N]; memset(a,0,sizeof(a)); a[1]=INF; q.push(1); while(!q.empty()) { int u=q.front(); q.pop(); for(int v=1; v<=m; v++) if(!a[v]&&cap[u][v]>flow[u][v]) { p[v]=u; q.push(v); if(cap[u][v]-flow[u][v]>a[u]) a[v]=a[u]; else a[v]=cap[u][v]-flow[u][v]; } } if(a[m]==0) break; for(int u=m; u!=1; u=p[u]) { flow[p[u]][u]+=a[m]; flow[u][p[u]]-=a[m]; } totf+=a[m]; //cout<<"here"<<endl; } printf("%d\n",totf); } return 0; }
标签:max one nat layout ble eof other string cap
原文地址:http://www.cnblogs.com/jasonlixuetao/p/6058270.html