洛谷 P2740 [USACO4.2] 草地排水Drainage Ditches [dinic算法]
来源:互联网 发布:java秒杀高并发框架 编辑:程序博客网 时间:2024/04/28 22:24
题目背景
在农夫约翰的农场上,每逢下雨,贝茜最喜欢的三叶草地就积聚了一潭水。这意味着草地被水淹没了,并且小草要继续生长还要花相当长一段时间。因此,农夫约翰修建了一套排水系统来使贝茜的草地免除被大水淹没的烦恼(不用担心,雨水会流向附近的一条小溪)。作为一名一流的技师,农夫约翰已经在每条排水沟的一端安上了控制器,这样他可以控制流入排水沟的水流量。
题目描述
农夫约翰知道每一条排水沟每分钟可以流过的水量,和排水系统的准确布局(起点为水潭而终点为小溪的一张网)。需要注意的是,有些时候从一处到另一处不只有一条排水沟。
根据这些信息,计算从水潭排水到小溪的最大流量。对于给出的每条排水沟,雨水只能沿着一个方向流动,注意可能会出现雨水环形流动的情形。
输入输出格式
输入格式:第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)是这条排水沟的最大容量。
输出格式:输出一个整数,即排水的最大流量。
输入输出样例
输入样例#1:
5 41 2 401 4 202 4 202 3 303 4 10
输出样例#1:
50
说明
题目翻译来自NOCOW。
USACO Training Section 4.2
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
最大流(dinic算法)~
真的是神奇神奇又神奇啊~
(程序在POJ上测的~)
#include<cstdio>#include<cstring>#include<iostream>#include<queue>using namespace std;int n,m,x,y,val,a[201][201],dis[201],ans,now;bool bfs(){queue<int> q;for(int i=1;i<=m;i++) dis[i]=-1;q.push(1);dis[1]=0;while(!q.empty()){int k=q.front();q.pop();for(int i=1;i<=m;i++) if(a[k][i] && dis[i]<0) { dis[i]=dis[k]+1;q.push(i); }}if(dis[m]>0) return 1;return 0;}int dfs(int u,int v){if(u==m) return v;int kkz;for(int i=1;i<=m;i++) if(a[u][i] && dis[i]==dis[u]+1 && (kkz=dfs(i,min(v,a[u][i])))) { a[u][i]-=kkz;a[i][u]+=kkz; return kkz; }return 0;}int main(){while(scanf("%d%d",&n,&m)!=EOF){memset(a,0,sizeof(a));ans=0;for(int i=1;i<=n;i++){scanf("%d%d%d",&x,&y,&val);a[x][y]+=val;}while(bfs()) if(now=dfs(1,999999999)) ans+=now;printf("%d\n",ans);}return 0;}
1 0
- 洛谷 P2740 [USACO4.2] 草地排水Drainage Ditches [dinic算法]
- P2740 [USACO4.2]草地排水Drainage Ditches
- 【题解】洛谷P2740 poj1273 [USACO4.2]草地排水Drainage Ditches
- 洛谷 P2740 [USACO4.2] 草地排水Drainage Ditches [Edmonds-Karp算法]
- 【USACO4.2】草地排水Drainage Ditches(最大流)
- 【Drainage Ditches 草地排水】
- USACO Training 4.2.1 Drainage Ditches 草地排水 题解与分析<网络流DINIC算法>
- USACO 4.2 草地排水 Drainage Ditches
- 【USACO题库】4.2.1 Drainage Ditches草地排水
- USACO 4.2 Drainage Ditches 草地排水(预流推进)
- HDU1532 Drainage Ditches Dinic算法
- POJ1273 Drainage Ditches【dinic算法】
- [USACO4.2]草地排水(网络流最大流模板)
- 网络流的初步应用[USACO4.2]草地排水
- usaco4.2.1 Drainage Ditches
- [USACO4.2.1]Drainage Ditches
- [POJ1273]草地排水 dinic模板
- 网络流Sap+Gap(【USACO题库】4.2.1 Drainage Ditches草地排水 )
- 集合遍历过程中删除集合元素问题
- openwrt默认mac地址配置(MT7620a)
- NYOJ1058+NYOJ1282 部分和问题(深度优先搜索DFS入门题)
- 地精排序-Gnome Sort
- eclipse解决editor does not contain a main type的方法
- 洛谷 P2740 [USACO4.2] 草地排水Drainage Ditches [dinic算法]
- Linux: grep
- java环境变量 指令
- matlab虚拟现实之工具介绍(修改)
- 2. Add Two Numbers
- DM9000调试过程总结(mac地址过滤)
- mysql5.5.53安装
- nmake编译libtiff
- Oracle学习一