HDU-1532 Drainage Ditches,人生第一道网络流!
自己拉的专题里面没有这题,网上找博客学习网络流的时候看到闯亮学长的博客然后看到这个网络流入门题!随手一敲WA了几发看讨论区才发现坑点!
本题采用的是Edmonds-Karp算法求增广路。小白书上只介绍了这个算法,确实对于数据不刁钻的题目这个算法足以应对。大白书上的Dinic及SAP、ISAP还没有去看,以后慢慢攻克吧!
回到这个题:n条水渠,m个交点,每条水渠有一个最大容量cap,求1号交点到m号交点的最大流。
学了EK算法这题就可以裸引用了,只是注意一个坑点:重边的时候既不是取最大、也不是取最小,而是+=
int a[N],p[N],flow[N][N],cap[N][N];
int n,m;
void init()
{
memset(flow,0,sizeof(flow));//流量,初始设为0
memset(cap,0,sizeof(cap));//容量,开始为0表示这条通道不存在
}
void EK()
{
// memset(p,0,sizeof(p));
queue<int>q;
ll f=0;//最大流
while(1)
{
memset(a,0,sizeof(a));
a[1]=INF;
q.push(1);
while(!q.empty())
{
int u=q.front();
q.pop();
for(int v=1; v<=m; v++)
if(!a[v]&&cap[u][v]>flow[u][v])
{
p[v]=u;
q.push(v);
a[v]=min(a[u],cap[u][v]-flow[u][v]);
}
}
if(!a[m]) break;
for(int i=m; i!=1; i=p[i])
{
flow[p[i]][i]+=a[m];
flow[i][p[i]]-=a[m];
}
f+=a[m];
}
printf("%I64d\n",f);
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
init();
int s,t,e;
for(int i=0; i<n; i++)
{
scanf("%d%d%d",&s,&t,&e);
cap[s][t]=cap[s][t]+e;
}
EK();
}
return 0;
}
给出闯亮学长的博客,写的很好,很适合初学者:http://blog.csdn.net/y990041769/article/details/21026445
HDU-1532 Drainage Ditches,人生第一道网络流!的更多相关文章
- HDU 1532 Drainage Ditches (网络流)
A - Drainage Ditches Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- HDU 1532 Drainage Ditches (最大网络流)
Drainage Ditches Time Limit : 2000/1000ms (Java/Other) Memory Limit : 65536/32768K (Java/Other) To ...
- HDU 1532 Drainage Ditches 分类: Brush Mode 2014-07-31 10:38 82人阅读 评论(0) 收藏
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- POJ 1273 || HDU 1532 Drainage Ditches (最大流模型)
Drainage DitchesHal Burch Time Limit 1000 ms Memory Limit 65536 kb description Every time it rains o ...
- poj 1273 && hdu 1532 Drainage Ditches (网络最大流)
Drainage Ditches Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 53640 Accepted: 2044 ...
- hdu 1532 Drainage Ditches(最大流)
Drainage Dit ...
- hdu 1532 Drainage Ditches(最大流模板题)
Drainage Ditches Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- hdu 1532 Drainage Ditches(网络流)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1532 题目大意是:农夫约翰要把多个小池塘的水通过池塘间连接的水渠排出去,从池塘1到池塘M最多可以排多少 ...
- HDU 1532 Drainage Ditches(网络流模板题)
题目大意:就是由于下大雨的时候约翰的农场就会被雨水给淹没,无奈下约翰不得不修建水沟,而且是网络水沟,并且聪明的约翰还控制了水的流速, 本题就是让你求出最大流速,无疑要运用到求最大流了.题中m为水沟数, ...
随机推荐
- [转]Java8 lambda表达式及新特新
分享自:Vincent package info.liuwenjun.test; import org.junit.Test; import java.util.*; import java.util ...
- 使用Intellij IDEA搭建一个简单的Maven项目
IntelliJ IDEA是Java最优秀的开发工具,它功能全面,提示比较智能,开发界面炫酷,新技术支持的比较迅速. 我使用了Eclipse快10年了,IntelliJ IDEA这么好用必须要试一试. ...
- HDU4035 Maze(期望DP)
题意 抄袭自https://www.cnblogs.com/Paul-Guderian/p/7624039.html 有n个房间,由n-1条隧道连通起来,形成一棵树,从结点1出发,开始走,在每个结点i ...
- 阿里云栖社区dubbo 资源整理
1.apache dubbo pdf git 地址:https://github.com/dubbo/awesome-dubbo/tree/master/slides/meetup/201905%40 ...
- Python3实现自动备份
需求 将重要文件备份到指定目录,存档文件名称为“当前日期.zip”. 前提 1) Windows系统 2) Python 3以上版本 旗舰版 #!usr/bin/python # -*- coding ...
- python深浅拷贝问题
Python中,对象的赋值,拷贝(深/浅拷贝)之间是有差异的,如果使用的时候不注意,就可能产生意外的结果. 下面本文就通过简单的例子介绍一下这些概念之间的差别. 一.对象赋值 又叫变量对对象的引用 l ...
- mysql IF语句使用
类似于三元运算符 1) IF(where,result1,result2) = where?result1:result2 例如 SELECT IF(1=1,1,2) => 1 2) ...
- Go 1.4 正式版发布,官方正式支持 Android
Go 1.4 正式发布啦,是第五个 Go 的稳定版本,与上一个稳定版本 Go 1.3 相隔 6 个月.Go 1.4 包括一些小的语言改进,支持更多的操作系统和处理器架构:改进了工具链和库.同时,Go ...
- Python list 列表和tuple元组
1 list是一种Python的数据类型--列表 list是一种有序的集合,可以进行增删改查 >>>name=[aa,bb,cc] >>>name ['aa','b ...
- rz
Linux系统简单易用的上传下载命令rz和sz sudo yum install lrzsz -y 上传:rz 下载:sz