POJ 1273 Drainage Ditches (最大流入门~)
来源:互联网 发布:深圳软件测试培训班 编辑:程序博客网 时间:2024/06/05 17:25
昨天一直没看懂EK算法,今天早上用gdb调试了很久终于知道咋回事啦~~给个链接先,我就是在这里看到的:
http://www.wutianqi.com/?p=3107
#include <algorithm>#include <climits>#include <cstring>#include <iostream>#include <queue>using namespace std;const int msize = 205;int N, M; // N–路径数, M–结点数int r[msize][msize]; //int pre[msize]; // 记录结点i的前向结点为pre[i]bool vis[msize]; // 记录结点i是否已访问// 用BFS来判断从结点s到t的路径上是否还有delta// 即判断s,t之间是否还有增广路径,若有,返回1bool BFS(int s, int t) { queue<int> que; memset(pre, -1, sizeof(pre)); memset(vis, false, sizeof(vis)); pre[s] = s; vis[s] = true; que.push(s); int p; while (!que.empty()) { p = que.front(); que.pop(); for (int i = 1; i <= M; ++i) { if (r[p][i] > 0 && !vis[i]) { pre[i] = p; vis[i] = true; if (i == t) // 存在增广路径 return true; que.push(i); } } } return false;}int EK(int s, int t) { int maxflow = 0, d; while (BFS(s, t)) { d = INT_MAX; // 若有增广路径,则找出最小的delta for (int i = t; i != s; i = pre[i]) d = min(d, r[pre[i]][i]); // 这里是反向边,看讲解 for (int i = t; i != s; i = pre[i]) { r[pre[i]][i] -= d; r[i][pre[i]] += d; } maxflow += d; } return maxflow;}int main() { while (cin >> N >> M) { memset(r, 0, sizeof(r)); int s, e, c; for (int i = 0; i < N; ++i) { cin >> s >> e >> c; r[s][e] += c; // 有重边时则加上c } cout << EK(1, M) << endl; } return 0;}
阅读全文
0 0
- POJ 1273 Drainage Ditches(最大流入门)
- POJ 1273 Drainage Ditches(最大流入门)
- poj Drainage Ditches 1273 (最大流入门)
- POJ 1273 Drainage Ditches (最大流入门~)
- POJ-1273 Drainage Ditches(最大流入门)
- POJ-Drainage Ditches-最大流入门题
- POJ 1273 Drainage Ditches(最大流入门题)
- POJ 1273 || HDU 1532 Drainage Ditches ,最大流入门题
- POJ 1273 Drainage Ditches 最大流入门题
- poj 1273 Drainage Ditches 【最大流入门 dinic算法】
- poj 1273 Drainage Ditches(网络流入门之最大流)
- Poj 1273 Drainage Ditches【最大流入门题----Ford-Fulkerson】
- poj1273 Drainage Ditches(最大流入门)
- POJ - 1273 Drainage Ditches (网络流入门题)
- POJ 1273 Drainage Ditches(网络流入门)
- NYOJ 323 && HDU 1532 && POJ 1273 Drainage Ditches (网络流之最大流入门)
- poj 1273 Drainage Ditches 网络流最大流入门 ford-fulkerson
- [POJ 1273]Drainage Ditches——网络流最大流入门
- Android屏幕适配px和dp适配两种方式
- Webdriver的八种定位方式--转自测试控
- java操作excel
- 367. Valid Perfect Square
- android aidl文件分析
- POJ 1273 Drainage Ditches (最大流入门~)
- 查看redis状态和redis常用命令
- Activity启动过程
- \lib\cmsis\stm32f10x.h(298): error: #67: expected a "}"
- SQL SELECT语句
- Hibernate(十四)注解
- Android启动过程
- Intellij IDEA 15中文输入框不跟随怎么办?
- hdfs启动后datanode闪挂