Drainage Ditches(草地排水)

题目描述

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

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

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

输入

第1行: 两个用空格分开的整数N (0 <= N <= 200) 和 M (2 <= M <= 200)。N是农夫约翰已经挖好的排水沟的数量,M是排水沟交叉点的数量。交点1是水潭,交点M是小溪。
第二行到第N+1行: 每行有三个整数,Si, Ei, 和 Ci。Si 和 Ei (1 <= Si, Ei <= M) 指明排水沟两端的交点,雨水从Si 流向Ei。Ci (0 <= Ci <= 10,000,000)是这条排水沟的最大容量。

输出

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

样例输入

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

样例输出

50

就是一道模板题QAQQ
本蒟蒻花了20分钟调结果发现"%d%d%d"写成"%d%d&d"
美滋滋~
代码:
 #include<algorithm>
#include<cstdio>
#include<cstring>
#include<queue> const int Maxv = , INF = 0x6ffffff;
int Dep[Maxv], W[Maxv], V[Maxv], Head[Maxv], Next[Maxv], cnt, n, s = , t; void Add(int u, int v, int w){
cnt++;
Next[cnt] = Head[u];
V[cnt] = v;
W[cnt] = w;
Head[u] = cnt;
} void Add_Edge(int u, int v, int w){
Add(u, v, w);
Add(v, u, );
} bool BFS(){
std::queue<int> Q;
while (!Q.empty()) {
Q.pop();
}
memset(Dep, , sizeof(Dep));
Dep[s] = ;
Q.push(s);
while (!Q.empty()) {
int u = Q.front();
Q.pop();
for (int i = Head[u]; ~i; i = Next[i]) {
if (W[i] > && Dep[V[i]] == ) {
Dep[V[i]] = Dep[u] + ;
Q.push(V[i]);
}
}
}
if (Dep[t] > ) {
return true;
}
return false;
} int DFS(int u, int dist){
if (u == t) {
return dist;
}
for (int i = Head[u]; ~i; i = Next[i]) {
if (Dep[V[i]] == Dep[u] + && W[i] != ) {
int di = DFS(V[i], std::min(dist, W[i]));
if (di > ) {
W[i] -= di;
W[i ^ ] += di;
return di;
}
}
}
return ;
} int Dinic(){
int Ans = ;
while (BFS()) {
while (int d = DFS(s, INF)) {
Ans += d;
}
}
return Ans;
} int main(){
int x, y, val;
scanf("%d%d", &n, &t);
memset(Head, - ,sizeof(Head));
memset(Next, - ,sizeof(Next));
for (int i = ; i <= n; i++) {
scanf("%d%d%d", &x, &y, &val);
Add_Edge(x, y, val);
}
printf("%d", Dinic());
return ;
}

[网络流]Drainage Ditches(草地排水)的更多相关文章

  1. 【USACO】草地排水

    Drainage Ditches 草地排水 usaco 4.2.1描述在农夫约翰的农场上,每逢下雨,Bessie最喜欢的三叶草地就积聚了一潭水.这意味着草地被水淹没了,并且小草要继续生长还要花相当长一 ...

  2. USACO 4.2 Drainage Ditches(网络流模板题)

    Drainage DitchesHal Burch Every time it rains on Farmer John's fields, a pond forms over Bessie's fa ...

  3. POJ 1273 Drainage Ditches(网络流,最大流)

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

  4. 【网络流】POJ1273 Drainage Ditches

    Drainage Ditches Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 78671   Accepted: 3068 ...

  5. POJ1273 Drainage Ditches (网络流)

                                                             Drainage Ditches Time Limit: 1000MS   Memor ...

  6. HDU 1532 Drainage Ditches (网络流)

    A - Drainage Ditches Time Limit:1000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64 ...

  7. HDU-1532 Drainage Ditches,人生第一道网络流!

    Drainage Ditches 自己拉的专题里面没有这题,网上找博客学习网络流的时候看到闯亮学长的博客然后看到这个网络流入门题!随手一敲WA了几发看讨论区才发现坑点! 本题采用的是Edmonds-K ...

  8. - > 网络流(草地排水)

    网络流(Dinic(模板)) Drainage Ditches Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 ...

  9. POJ 1273 Drainage Ditches (网络流Dinic模板)

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

随机推荐

  1. java.security.MessageDigest (2) 生成安全令牌!

    时候,我们需要产生一个数据,这个数据保存了用户的信息,但加密后仍然有可能被人使用,即便他人不确切的了解详细信息... 好比,我们在上网的时候,很多网页都会有一个信息,是否保存登录信息,以便下次可以直接 ...

  2. Physical (Raw) Versus Logical Backups

    [Physical (Raw) Versus Logical Backups] Physical backups consist of raw copies of the directories an ...

  3. Flux architecture

    [Flux architecture] Flux is a pattern for managing data flow in your application. The most important ...

  4. 基于oslo_messaging的RPC通信

    oslo_messaging源于Openstack的一个经典的模块,用以实现服务间的RPC通信.Client端将数据放入rabbitmq中,server端从消息队列中获取传送数据. oslo.mess ...

  5. SQLdeveloper换成windows主题后不显示的情况

    这几天因为换电脑需要重新安装数据库, 因为换成了64位系统, 原先的oracle数据库也换成了64位, 但是plsql还是要用32位的, 经过深思熟虑也没装, 请教了一个同学改用oracle自带的sq ...

  6. TOJ 3589 likaer的最长点距

    传送门:http://acm.tzc.edu.cn/acmhome/problemdetail.do?&method=showdetail&id=3589 时间限制(普通/Jav a) ...

  7. 项目总结09:select标签下封装option标签

    项目中经常用到Select标签,用封装好的方法获取option,可以避免冗赘的代码: 1.JSP--标签 <select class="width_md" name=&quo ...

  8. Mysql的随机抽取

    方法一 SELECT * FROM SHARE ORDER BY RAND( ) LIMIT 1; 在MYSQL的官方手册,里面针对RAND()的提示大概意思就是,在ORDER BY从句里面不能使用R ...

  9. 数据节点-df 无法输出结果

    1. 删除了 a 机器的/opt/data 目录 2.b与c 机器挂载了 a机器的/opt/data 3.df -h 无法输出结果 最后参考:http://blog.csdn.net/lufeisan ...

  10. 32-java 里面list的问题

    申明一个对象时,一般前的类型需要申明的: List list1 = new ArrayList<Edge1>();    这个不能调用对象的属性 和 List<Edge1> l ...