解题思路:

这是一道典型的模板题,直接套用EK算法即可。。。我感觉最大流的本质就是能否找到一个从源点到汇点的增广路径,并将其最小的边作为增加值,沿着增广路上的边进行更新。

AC:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
using namespace std;const int maxn = 200;
const int inf = 0x7fffff;
int n,m,s,t,map[maxn][maxn],path[maxn]; //map[i][j]存储(i,j)的流,path存储的是增广路径
int flow[maxn]; //flow存储一次BFS遍历之后流的可改进量int bfs()    //寻找一条增广路径
{queue<int> q;memset(path,-1,sizeof(path));flow[s] = inf;q.push(s);while(!q.empty()){int now = q.front();q.pop();if(now == t) break;for(int i = 1; i <= m; i++){if(i != s && path[i] == -1 && map[now][i]){flow[i] = flow[now] < map[now][i] ? flow[now] : map[now][i];q.push(i);path[i] = now;}}}if(path[t] == -1) return -1;   //找不到增广路径return flow[t];
}int Edmonds_Karp()
{int max_flow = 0,step,now,pre;while((step = bfs()) != -1)       //能够找到一条增广路径{max_flow += step;now = t;while(now != s){pre = path[now];map[pre][now] -= step;map[now][pre] += step;now = pre;}}return max_flow;
}int main()
{while(cin>>n>>m){int u,v,cost;memset(map,0,sizeof(map));for(int i = 1; i <= n; i++){cin>>u>>v>>cost;map[u][v] += cost;}s = 1; t = m;printf("%d\n",Edmonds_Karp());}return 0;
}

hdu 1532(最大流)相关推荐

  1. HDU 1532 Drainage Ditches(poj1273)【E-K 最大流】

    第一道最大流题. 水题,裸题. 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是点 ...

  2. hdu 4888 最大流慢板

    http://acm.hdu.edu.cn/showproblem.php?pid=4888 添加一个源点与汇点,建图如下: 1. 源点 -> 每一行对应的点,流量限制为该行的和 2. 每一行对 ...

  3. hdu 4309(最大流+枚举状态)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4309 思路:2^12枚举修复哪些桥,不修复的桥没有花费,连接的边流量为1,要修复的桥则计算花费,边的流 ...

  4. hdu 3395(费用流,二分图的最大权匹配)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3395 解题思路: 这个构图很容易出错,最开始都容易想,把每个点拆开,分为攻击和被攻击的,建图如下: 源 ...

  5. hdu 3549 最大流(EK实现)

    Problem: http://acm.hdu.edu.cn/showproblem.php?pid=3549 题目都直接说求最大流了,还需要做什么 数据这么弱,直接套最大流模版 #include&l ...

  6. HDU 1533 费用流入门

    费用流 (最小费用最大流) 网络图中 每条边 多给出了 单位流量的费用 cost(u,v) ,当通过(u,v)的流量为f(u,v)f(u,v)f(u,v)时,需要花费 f(u,v)∗cost(u,v) ...

  7. hdu 5045 费用流

    题意:      网选赛的一个题目,当时各种超时各种wa,哎! 题意是有n个人m道题,每个人对每道题都有一个ac率,每相邻的n到题目必须n个人每人一道,顺序无所谓,上下的m%n道只要不出现一个人做两道 ...

  8. hdu 4309 最大流 + DFS

    题意:      给以三种有向边     (1) 隧道,可以过无数人,也可以藏c个人.     (2) 路,只能过人(流量INF).     (3)古桥,如果不修理可以过1个人,修理可以过无数个人,但 ...

  9. Random Maze HDU - 4067 费用流/可行流

    主要谈谈建图的原理给自己听 首先贪心出来的一个图上加的边都是可走的[修改边],这些修改边的反向边是用来在跑网络流的时候撤销修改的 换句话说,每条修改边都是备选项,是用来调整图上各点入度的 所以,既然是 ...

最新文章

  1. 一维数组求平均值c语言编程软件,c语言编程:用数组名作函数参数,编写一个对一维数组求平均值的函数,并在主函数中调用它...
  2. Objective-C @property和@synthesize
  3. gdi 中发生一般性错误_SMC/SMD波峰焊接过程中的注意事项分析
  4. 将shp文件导入到GeoDatabase中
  5. MySQL等值连接的介绍
  6. c语言基本数据类型常量,C语言基础学习基本数据类型-变量和常量
  7. Go语言大神亲述:历七劫方可成为程序员!
  8. Spring Boot从入门到精通-项目搭建
  9. Flutter 的ButtonBar
  10. 计算机组成原理课程设计报告总结
  11. 计算机系统论文题目,计算机系统维护毕业论文题目(572个).doc
  12. easydarwin php,Windows版本EasyDarwin
  13. android系统程序卸载,怎样卸载Android系统程序
  14. 基于jsp+java+ssm的大学生缴费系统-计算机毕业设计
  15. java基础jdk,jre,jvm作业-答案
  16. 南京计算机类事业单位,南京市属事业单位公开招聘579人 3月25日起报名
  17. 问题解决:Could not get a databaseId from dataSource
  18. vim黏贴代码格式混乱的解决方法
  19. 黎想首谈14大权威新媒体推广平台,教你一招搭建信息流矩阵!
  20. 怎样P漫画脸?这三个简单方法分享给你

热门文章

  1. 深度干货 | 多维分析中的 UV 与 PV
  2. 爬虫基础, 乱码问题, jupyter, urllib, requests, lxml, multiprocessing并发, session, beautifulsoup...
  3. jenkins~管道Pipeline里使用公用类库
  4. springMVC 不扫描 controller 中的方法
  5. 【转】程序员该做的事 - 每天、每周、每月
  6. 2503 常用格式验证
  7. 怎么一步步编写简单的PHP的Framework(五)
  8. 艾伟:ASP.NET MVC,深入浅出IModelBinder,在Post方式下慎用HtmlHelper
  9. 25个优秀的jQuery滑块教程和插件
  10. js正则表达式限制输入中文字符。