标签:des style blog http color io os java ar
Time Limit: 5000/5000 MS (Java/Others) Memory Limit: 65535/32768 K (Java/Others)
Total Submission(s): 8203 Accepted Submission(s): 3817
1 #include<cstdio> 2 #include<cstring> 3 #include<iostream> 4 #include<queue> 5 using namespace std; 6 const int inf=0x3f3f3f3f; 7 int mat[30][30]; 8 int dist[31]; 9 int n,m; 10 int min(int a,int b) 11 { 12 return a<b?a:b; 13 } 14 bool bfs(int st,int to){ 15 memset(dist,-1,sizeof(dist)); 16 queue<int>q; 17 q.push(st); 18 dist[st]=0; 19 int t; 20 while(!q.empty()){ 21 t=q.front(); 22 q.pop(); 23 for(int i=1;i<=n;i++){ 24 if(dist[i]<0&&mat[t][i]>0){ 25 dist[i]=dist[t]+1; 26 if(i==to)return 1; 27 q.push(i); 28 } 29 } 30 } 31 return 0; 32 } 33 int dfs(int st,int to,int flow) 34 { 35 int tem; 36 if(st==to||flow==0) return flow; 37 for(int i=1;i<=n;i++){ 38 if((dist[i]==dist[st]+1)&&mat[st][i]>0&&(tem=dfs(i,to,min(mat[st][i],flow)))) 39 { 40 mat[st][i]-=tem; 41 mat[i][st]+=tem; 42 return tem; 43 } 44 } 45 return 0; 46 } 47 int Dinic(int st,int en) 48 { 49 int ans=0; 50 while(bfs(st,en)) 51 ans+=dfs(st,en,inf); 52 return ans; 53 } 54 int main(){ 55 int cas,i,a,b,c; 56 scanf("%d",&cas); 57 for(i=1;i<=cas;i++){ 58 scanf("%d%d",&n,&m); 59 memset(mat,0,sizeof(mat)); 60 while(m--){ 61 scanf("%d%d%d",&a,&b,&c); 62 mat[a][b]+=c; 63 } 64 printf("Case %d: %d\n",i,Dinic(1,n)); 65 } 66 return 0; 67 }
hdu------(3549)Flow Problem(最大流(水体))
标签:des style blog http color io os java ar
原文地址:http://www.cnblogs.com/gongxijun/p/3969112.html