第一道最大流题。

水题,裸题。

Sample Input

5 4
1 2 40
1 4 20
2 4 20
2 3 30
3 4 10

Sample Output

50
输入m n,   m是边数,n是点数。 
接下来m行:   起点,终点,最大流量。
求以 1 为源点, n为汇点的最大流。
#include<stdio.h>
#include<string.h>
#include<queue>
#include<algorithm>
using namespace std;const int INF = 0xfffffff;
const int MAXN = 200 + 10;//邻接矩阵存放图。
int flow[MAXN][MAXN];
//mark[]标记是否访问过,pre[]记录增广路。
int mark[MAXN], pre[MAXN];
int m, n, f; //f为最大流。void max_flow()
{//不断寻找增广路,知道找不到为止,找不到的标志为 mark[n]==0. while(1) {memset(mark, 0, sizeof(mark));memset(pre, 0, sizeof(pre));queue<int> Q;mark[1] = 1;Q.push(1);while( !Q.empty() ) {int cnt = Q.front();Q.pop();//找到增广路,跳出。if(cnt == n) {break;}for(int i = 1; i <= n; i++) {if(!mark[i] && flow[cnt][i] > 0) {mark[i] = 1;Q.push(i);pre[i] = cnt;}}}//如果没找到可增广的路,直接跳出.if( !mark[n] ) {break;}//计算该增广路最大可增加的流量.int minx = INF;for(int i = n; i != 1; i = pre[i]) {minx = min( flow[pre[i]][i], minx );}for(int i = n; i != 1; i = pre[i]) {flow[pre[i]][i] -= minx; //更新正向流量。flow[i][pre[i]] += minx; //更新反向流量。
        }f += minx;}
}int main()
{while(scanf("%d %d", &m, &n) != EOF) {memset(flow, 0, sizeof(flow));for(int i = 0; i < m; i++) {int u, v, len;scanf("%d %d %d", &u, &v, &len);//这个题有重边的情况,所以要flow[u][v] += len;直接等于过不去。flow[u][v] += len;}f = 0;max_flow();printf("%d\n", f);}return 0;
}

转载于:https://www.cnblogs.com/-hsz/archive/2012/07/24/2605788.html

HDU 1532 Drainage Ditches(poj1273)【E-K 最大流】相关推荐

  1. Drainage Ditches POJ1273

    Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 93263 Accepted: 36174 试题链接 文章目录 Descripti ...

  2. 2019.4.8 1532 Drainage Ditches

    题意:水从水池流向汇集地,每个管子有限制,求到汇集地的最大量 最大流模板 #include <bits/stdc++.h>using namespace std;#define inf 0 ...

  3. 【POJ - 1273】Drainage Ditches(网络流,最大流,模板)

    题干: 现在有m个池塘(从1到m开始编号,1为源点,m为汇点),及n条水渠,给出这n条水渠所连接的点和所能流过的最大流量,求从源点到汇点能流过的最大流量. Input 输入包括几种情况. 对于每种情况 ...

  4. Drainage Ditches【究极最大流算法之ISAP】(Improved Shortest Augmeng Path)

    题目链接(一道模板的最大流问题) 我们都知道,Dinic算法求最大流的时候,每次都是需要去重新跑一遍分层图,那么现在有没有什么不需要再这样一次又一次地跑一遍分层图的做法呢? 我们知道,其实每次改变的深 ...

  5. 网络流 - Drainage Ditches - HDU - 1532

    Problem Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite ...

  6. poj1273 Drainage Ditches

    蒟蒻的blog POJ 1273 Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Memory Limit: 10000K Total ...

  7. [POJ 1273]Drainage Ditches

    [问题描述] Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clover patch ...

  8. 网络流--最大流--POJ 1273 Drainage Ditches

    链接 Description Every time it rains on Farmer John's fields, a pond forms over Bessie's favorite clov ...

  9. USACO Section 4.2 Drainage Ditches(最大流)

    最大流问题.ISAP算法.注意可能会有重边,不过我用的数据结构支持重边.距离d我直接初始化为0,也可以用BFS逆向找一次. -------------------------------------- ...

最新文章

  1. 抛开flash,自己开发实现C++ RTMP直播流播放器
  2. 用c#输出正九九乘法表_用C#写九九乘法表
  3. Ubuntu开机自动启动script(2)
  4. 【贪心算法】POJ-1017
  5. RESTful 设计工具和Web框架
  6. 35. 源码与 Tarball
  7. 使用Ant打包java程序
  8. C语言猜拳游戏完整代码
  9. java编译成exe_java编译成exe
  10. 搜狗微信临时链接转换成永久链接
  11. html5抢答题,2017最新趣味数学抢答题
  12. 【unity3D弹跳的小球游戏制作】
  13. mysql 访问被拒绝如何解决
  14. 用了 DDD 以后,代码更难懂了?看完这篇你就明白了
  15. c语言编程图形篮球,c语言程序设计 用高级语言实现篮球联赛个人技术数据处理系统...
  16. 智能交通系统(ITS)在可持续城市交通规划中的作用(附下载)
  17. mybatis使用foreach进行批量操作 The error may involve defaultParameterMap
  18. scikit-learn源码学习之cluster.MeanShift
  19. MySQL主从复制之realy_log_recovery
  20. 孔子最得意的弟子颜回不幸英年早逝

热门文章

  1. 论文笔记--跨模态间的人脸与人名对齐方法研究-2012
  2. linux7 多路径配置,redhat7.3多路径配置
  3. 『天涯杂谈』走的地方越多,越觉的中国的狭隘
  4. python加密模块教程_Python hashlib加密模块常用方法解析
  5. 遍历字段_以字段覆盖标准指导的高效测试生成技术
  6. JavaWeb——springMVC、mybatis与spring的整合
  7. win10+jdk8重启后失效
  8. MySql数据导入导出及解决ERROR2006(MySQL server has gone away)错误
  9. slqite3库查询数据处理方式_SQLite数据库使用 常用命令
  10. 计算走线长度_高速走线长度的一些思考