hud 1532 Drainage Ditches + 网络流入门题
2013-12-15 15:49
543 查看
#include <iostream> #include <cstdio> #include <cstring> #include <queue> using namespace std; const int M = 300; int mmap[M][M]; int pre[M]; int vist[M]; int n, m; int bfs() { int v; memset(vist, 0, sizeof(vist)); memset(pre, 0, sizeof(pre)); queue<int>s; pre[1] = 0; vist[1] = 1; s.push(1); bool flag = false; while(!s.empty()) { v = s.front(); s.pop(); for(int i = 1; i <= m; i++) { if(mmap[v][i] > 0 && vist[i] == 0) { pre[i] = v; vist[i] = 1; if(i == m) { flag = true; while(!s.empty()) s.pop(); break; } else s.push(i); } } } if(!flag) return 0; v = m; int minflow = 99999999; while(pre[v]) { minflow = min(minflow, mmap[pre[v]][v]); v = pre[v]; } v = m; while(pre[v]) { mmap[pre[v]][v] -= minflow; mmap[v][pre[v]] += minflow; v = pre[v]; } return minflow; } int main() { int a, b, c; while(scanf("%d%d", &n, &m) != EOF) { memset(mmap, 0, sizeof(mmap)); for(int i = 0; i < n; i++) { scanf("%d%d%d", &a, &b, &c); mmap[a][b] += c; } int ans = 0; int flow; while(flow = bfs()) { ans += flow; } printf("%d\n", ans); } return 0; }
相关文章推荐
- hdu 1532 Drainage Ditches && hdu 3549 Flow Problem 网络流最大流问题 Edmonds-Karp算法
- Drainage Ditches - HDU 1532 - 网络流
- HDU - 1532 - Drainage Ditches && 3549 - Flow Problem (网络流初步)
- 网络流模板-(EdmondsKarp)-HDU-1532-Drainage Ditches
- usaco Drainage Ditches(网络流dinic模板)
- Drainage Ditches HDU - 1532 (网络流之最大流)(EdmondsKarp算法)
- 网络流——最大流入门题目 HDU 1532——Drainage Ditches
- POJ 1273(HDU 1532) Drainage Ditches|HDU 3549 Flow Problem|很典型&&裸的网络流
- hdu 1532 POJ 1273 Drainage Ditches 和hdu 3549 Flow Problem 网络流入门(EK和dinic)
- hdu 1532 Network Flow Drainage Ditches
- Drainage Ditches--hdu1532(网络流 模板)
- POJ 1273 Drainage Ditches(网络流-最大流)
- 网络流poj(1273)Drainage Ditches
- POJ 1273:Drainage Ditches 网络流模板题
- POJ 1273:Drainage Ditches 网络流模板题
- hdu Drainage Ditches(网络流)
- 【网络流】最大流:Drainage Ditches【EK模板】
- 1532 Drainage Ditches (网络流入门)
- POJ 1273 && HDU 1532:Drainage Ditches
- hdu(1532)Drainage Ditches