POJ 1273 Drainage Ditches(最大流入门题)
2013-05-02 15:35
183 查看
里面可能有重边 可以把重边全部加在一起就可以了,用的是EK算法.
#include <iostream> #include <cstdio> #include <memory.h> #include <queue> using namespace std; #define INF 0X50505050 const int maxn = 205; int g[maxn][maxn], fa[maxn], n, m; bool vis[maxn]; bool bfs(){ memset(fa, -1, sizeof(fa)); queue<int> q; q.push(1); while (q.size()){ int t = q.front(); q.pop(); if(t == m)return true; for (int i = 1; i <= m; ++i){ if(g[t][i] && fa[i] < 0){ fa[i] = t; q.push(i); } } } return false; } int Emond_karps(){ int ans = 0; while (bfs()){ int minF=INF; for (int i = m; i != 1; i = fa[i]){ if(g[fa[i]][i] < minF){ minF = g[fa[i]][i]; } } if(minF == INF) break; for (int i = m; i != 1; i = fa[i]){ g[fa[i]][i] -= minF; g[i][fa[i]] += minF; } ans += minF; } return ans; } int main(){ while (scanf("%d%d", &n, &m) == 2){ memset(g,0,sizeof(g)); for (int i = 0;i < n ; ++i){ int u, v, w; scanf("%d%d%d", &u, &v, &w); g[u][v] += w; } printf("%d\n", Emond_karps()); } return 0; }
相关文章推荐
- poj 1273 Drainage Ditches(最大流入门)
- poj 1273 Drainage Ditches (最大流入门)
- poj 1273 Drainage Ditches【最大流入门】
- poj1273 Drainage Ditches(最大流入门)
- poj 1273 Drainage Ditches 最大流入门题
- POJ 1273 Drainage Ditches(最大流入门)
- poj 1273 Drainage Ditches(网络流入门之最大流)
- POJ 1273 Drainage Ditches 最大流入门题
- 最大流入门 之 poj 1273
- POJ 1273 Drainage Ditches 最大流入门题
- POJ 1273 最大流入门题 Edmonds_Karp算法
- 最大流入门 之 poj 1273
- [POJ 1273]Drainage Ditches——网络流最大流入门
- poj 1273 Drainage Ditches 网络流最大流入门 ford-fulkerson
- 网络流 最大流问题入门选作 (POJ1273,BZOJ1711)
- NYOJ 323 && HDU 1532 && POJ 1273 Drainage Ditches (网络流之最大流入门)
- poj1273 Drainage Ditches(最大流入门 EK+Dinic模板)
- POJ-1273 Drainage Ditches(最大流入门)
- poj 1273 Drainage Ditches 【最大流入门 dinic算法】
- 最大流入门 poj 1273 && hdu 3549