博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
草地排水
阅读量:6168 次
发布时间:2019-06-21

本文共 2248 字,大约阅读时间需要 7 分钟。

1993 草地排水

USACO

 时间限制: 2 s
 空间限制: 256000 KB
 
题目描述 Description

在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪)。作为一名一流的技师,农夫约翰已经在每条排水沟的一端安上了控制器,这样他可以控制流入排水沟的水流量。

农夫约翰知道每一条排水沟每分钟可以流过的水量,和排水系统的准确布局(起点为水潭而终点为小溪的一张网)。需要注意的是,有些时候从一处到另一处不只有一条排水沟。

根据这些信息,计算从水潭排水到小溪的最大流量。对于给出的每条排水沟,雨水只能沿着一个方向流动,注意可能会出现雨水环形流动的情形。

输入描述 Input Description

第1行: 两个用空格分开的整数N (0 <= N <= 200) 和 M (2 <= M <= 200)。N是农夫John已经挖好的排水沟的数量,M是排水沟交叉点的数量。交点1是水潭,交点M是小溪。

第二行到第N+1行: 每行有三个整数,Si, Ei, 和 Ci。Si 和 Ei (1 <= Si, Ei <= M) 指明排水沟两端的交点,雨水从Si 流向Ei。Ci (0 <= Ci <= 10,000,000)是这条排水沟的最大容量。

输出描述 Output Description

输出一个整数,即排水的最大流量。

样例输入 Sample Input
5 41 2 401 4 202 4 202 3 303 4 10
样例输出 Sample Output

50

最大流模板题

#include
#include
#define N 201#define INF 10000000using namespace std;int n,m,tot=1,front[N],ans,lev[N],src,dec,cur[N],que[N],head,tail;struct node{ int next,to,cap;}e[N*2];inline void add(int u,int v,int w){ e[++tot].to=v;e[tot].next=front[u];e[tot].cap=w;front[u]=tot; e[++tot].to=u;e[tot].next=front[v];e[tot].cap=0;front[v]=tot;}inline bool bfs(){ for(int i=src;i<=dec;i++) {lev[i]=-1;cur[i]=front[i];} head=tail=0; que[tail++]=src;lev[src]=0; while(head
0&&lev[e[i].to]==-1) { lev[e[i].to]=lev[que[head]]+1; que[tail++]=e[i].to; if(e[i].to==dec) return true; } head++; } return false;}inline int dinic(int u,int flow){ if(u==dec) return flow; int res=0,delta; for(int & i=cur[u];i;i=e[i].next) { if(e[i].cap>0&&lev[e[i].to]>lev[u]) { delta=dinic(e[i].to,min(e[i].cap,flow-res)); if(delta) { e[i].cap-=delta;e[i^1].cap+=delta; res+=delta; if(res==flow) break; } } } if(res!=flow) lev[u]=-1; return res;}int main(){ scanf("%d%d",&n,&m); int u,v,w; for(int i=1;i<=n;i++) { scanf("%d%d%d",&u,&v,&w); add(u,v,w); } src=1;dec=m; while(bfs()) ans+=dinic(src,INF); printf("%d",ans);}

 

转载于:https://www.cnblogs.com/TheRoadToTheGold/p/6392634.html

你可能感兴趣的文章
js如何实现复制粘贴功能
查看>>
巧用加密方法保障电子邮件系统安全
查看>>
C#中这样用Sleep()...
查看>>
iframe实现自适应高度
查看>>
csrf验证
查看>>
修改PUTTY支持保存密码
查看>>
2016年蓝桥杯预选赛试题(水题)
查看>>
android进程优先级
查看>>
新人入坑Redis必会的吐血总结
查看>>
java中基础信息的获取方法
查看>>
[iOS] NSURLCache && NSCachedURLResponse
查看>>
Iphone开发之UIView中的动画属性
查看>>
cocos2d-x 中文 乱码问题
查看>>
iPhone开发:iOS Framework制作研究
查看>>
sonar 代码分析 security - Array is stored directly
查看>>
黄聪:C#如何通过MeasureString、Graphics获取字符串的像素长度
查看>>
ShareObject离线存储相关
查看>>
C++ XML
查看>>
无废话WCF入门教程三[WCF的宿主]
查看>>
.NET 中易混淆的概念(Delegate vs Event)
查看>>