码迷,mamicode.com
首页 > 其他好文 > 详细

POJ1273 最大流EK 裸题

时间:2015-07-25 11:58:29      阅读:106      评论:0      收藏:0      [点我收藏+]

标签:

 1 #include <cstdio>
 2 #include <cstring>
 3 #include <queue>
 4 #include <algorithm>
 5 using namespace std;
 6 int n,m;
 7 const int maxn = 205;
 8 int c[maxn][maxn],flow[maxn][maxn];
 9 int vis[maxn],fa[maxn];
10 int largest_flow(int s,int t)
11 {
12 
13     queue<int>q;
14     memset(flow,0,sizeof(flow));
15     int ans = 0;
16     while(1)
17     {
18         memset(vis,0,sizeof(vis));
19         q.push(s);
20         vis[s] = 0x3f3f3f3f;
21         while(!q.empty()){
22             int u = q.front();q.pop();
23             for(int v = 1;v<=n;++v)if(!vis[v]&&c[u][v]>flow[u][v]){
24                 fa[v] = u;q.push(v);
25                 vis[v] = min(vis[u],c[u][v]-flow[u][v]);
26             }
27         }
28       //  puts("--------------");
29         if(vis[t]==0)break;
30         for(int i = t;i!=s;i = fa[i]){
31             flow[fa[i]][i]+=vis[t];
32             flow[i][fa[i]]-=vis[t];
33         }
34 
35         ans+=vis[t];
36     }
37     return ans;
38 }
39 int main()
40 {
41     while(~scanf("%d%d",&m,&n)){
42         memset(c,0,sizeof(c));
43         for(int i = 1;i<=m;++i){
44             int u,v,w;scanf("%d%d%d",&u,&v,&w);
45             c[u][v]+=w;
46         }
47         printf("%d\n",largest_flow(1,n));
48     }
49     return 0;
50 }

 

POJ1273 最大流EK 裸题

标签:

原文地址:http://www.cnblogs.com/GJKACAC/p/4675597.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!