HDU 1532 Drainage Ditches

http://acm.hdu.edu.cn/showproblem.php?pid=1532

基础题。

 1 #include<iostream>
 2 #include<cstring>
 3 #include<string>
 4 #include<algorithm>
 5 #include<queue>
 6 using namespace std;
 7
 8 int n, m, flow;
 9 int vis[205];
10 //路径记录
11 int pre[205];
12 //邻接表
13 int G[205][205];
14
15 void Maxflow()
16 {
17     for (;;)
18     {
19         memset(vis, 0, sizeof(vis));
20         queue<int> q;
21         q.push(1);
22         vis[1] = 1;
23         while (!q.empty())
24         {
25             int x = q.front();
26             q.pop();
27             //到达终点
28             if (x == m)  break;
29             for (int i = 1; i <= m; i++)
30             {
31                 if (!vis[i] && G[x][i] > 0)
32                 {
33                     vis[i] = 1;
34                     q.push(i);
35                     //记录好路径
36                     pre[i] = x;
37                 }
38             }
39         }
40         //没有找到增广路
41         if (!vis[m])  break;
42         int _min = 1000000;
43         for (int i = m; i != 1; i = pre[i])
44             _min = min(_min, G[pre[i]][i]);
45         for (int i = m; i != 1; i = pre[i])
46         {
47             G[i][pre[i]] += _min;
48             G[pre[i]][i] -= _min;
49         }
50         flow += _min;
51     }
52 }
53
54 int main()
55 {
56     //freopen("D:\\txt.txt", "r", stdin);
57     while (cin >> n >> m)
58     {
59         int u, v, w;
60         memset(G, 0, sizeof(G));
61         for (int i = 0; i < n; i++)
62         {
63             cin >> u >> v >> w;
64             //因为可能存在重边的情况
65             G[u][v] += w;
66         }
67         flow = 0;
68         Maxflow();
69         cout << flow << endl;
70     }
71 }
时间: 2024-11-07 11:11:07

HDU 1532 Drainage Ditches的相关文章

HDU 1532 Drainage Ditches 最大排水量 网络最大流 Edmonds_Karp算法

题目链接:HDU 1532 Drainage Ditches 最大排水量 Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 9641    Accepted Submission(s): 4577 Problem Description Every time it rains on Farmer John

hdu 1532 Drainage Ditches(最大流)

Drainage Ditches Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by water for awhile and takes quite a long time to regrow. Thus, Farmer John has built a set of drai

HDU - 1532 - Drainage Ditches &amp;&amp; 3549 - Flow Problem (网络流初步)

Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) Total Submission(s): 10875    Accepted Submission(s): 5131 Problem Description Every time it rains on Farmer John's fields, a pond forms over Bessie'

HDU 1532 Drainage Ditches (网络流)

A - Drainage Ditches Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch. This means that the clover is covered by wate

HDU 1532 Drainage Ditches (最大网络流)

Drainage Ditches Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 65536/32768K (Java/Other) Total Submission(s) : 5   Accepted Submission(s) : 3 Font: Times New Roman | Verdana | Georgia Font Size: ← → Problem Description Every time it rains on

HDU 1532 Drainage Ditches(最大流 EK算法)

题目网址:http://acm.hdu.edu.cn/showproblem.php?pid=1532 思路: 网络流最大流的入门题,直接套模板即可~ 注意坑点是:有重边!!读数据的时候要用"+="替换"=". 对网络流不熟悉的,给一篇讲解:http://www.cnblogs.com/ZJUT-jiangnan/p/3632525.html. ?(? ? ??)我是看这篇博客才入门的. 代码: 1 #include <cstdio> 2 #includ

hdu - 1532 Drainage Ditches (最大流)

http://acm.hdu.edu.cn/showproblem.php?pid=1532 求最大的流量,用dinic算法就好. 1 // Rujia Liu 2 // 因为图较大,所以采用Dinic而不是EdmondsKarp 3 // 得益于接口一致性,读者无须理解Dinic就能使用它. 4 #include<cstdio> 5 #include<cstring> 6 #include<queue> 7 #include<algorithm> 8 us

hdu 1532 Drainage Ditches(edmond-karp最大流算法)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 #include <stdio.h> #include <queue> #include <string.h> #include <algorithm> #define INT_MAX (int)1e9 using namespace std; const int N = 207; int network[N][N], pre[N], used[N], f

hdu 1532 Drainage Ditches 增广路 ford

#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <stack> #include <set> #include <map> #include <string> #include <ma