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

POJ 1273(EK)

时间:2014-05-25 11:43:33      阅读:224      评论:0      收藏:0      [点我收藏+]

标签:style   class   blog   c   code   java   

题目大概意思是,有N条水沟和M个水池,问从第一个水池到最后一个水池在同一时间内能够流过多少水
第一行有两个整数N,M
接下来N行,每行有3个整数,a,b,c,代表从a到b能够流c单位的水
超级模板题,一个有向图,源点为1,汇点为M,套最大流模板就行了

我就通过这水题理解EK的...

bubuko.com,布布扣
 1 #include<cstdio>
 2 #include<cstring>
 3 #include<iostream>
 4 #include<queue>
 5 #include<climits>
 6 using namespace std;
 7 #define N 210
 8 #define clr(a,b) memset(a,b,sizeof(a))
 9 int cap[N][N];///容量
10 int n,m;
11 int a,b,c;
12 int EK(int s,int t)///s代表源点,t代表汇点
13 {
14     queue<int> q;
15     int flow[N][N];///流量
16     int low[N];///low[v]表示s-v的最小残量
17     int pre[N];///用于BFS寻找父亲节点
18     int u,v;
19     int maxflow = 0;///最大流
20     clr(flow,0);///初始时残量网络为0
21     while(1)
22     {
23         q.push(s);///把源点压入队列中
24         clr(low,0);
25         low[s] = INT_MAX;
26         while(!q.empty())
27         {
28             u = q.front();
29             q.pop();
30             for(v = 0; v <= t; v ++)
31             {
32                 if(!low[v] && cap[u][v] > flow[u][v])///找到新节点v
33                 {
34                     q.push(v);
35                     low[v] = min(low[u], cap[u][v] - flow[u][v]);
36                     pre[v] = u;
37                 }
38             }
39         }
40         if(low[t] == 0) break;///找不到,则当前流已经是最大
41         for(u = t; u != s; u = pre[u])
42         {
43             flow[pre[u]][u] += low[t];
44             flow[u][pre[u]] -= low[t];
45         }
46         maxflow += low[t];
47     }
48     return maxflow;
49 }
50 int main()
51 {
52     int ans;
53     while(~scanf("%d%d",&n,&m))
54     {
55         clr(cap,0);
56 
57         for(int i=0; i<n; i++)
58         {
59             scanf("%d%d%d",&a,&b,&c);
60             cap[a][b] += c;
61         }
62         ans = EK(1,m);
63         printf("%d\n",ans);
64     }
65     return 0;
66 }
bubuko.com,布布扣

 

POJ 1273(EK),布布扣,bubuko.com

POJ 1273(EK)

标签:style   class   blog   c   code   java   

原文地址:http://www.cnblogs.com/man1304010109/p/3750786.html

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