题目名称 1994. [CF 343E]供水泵站
输入输出 pumpingstations.in/out
难度等级 ★★★
时间限制 2000 ms (2 s)
内存限制 256 MiB
测试数据 10
题目来源 Gravatarcstdio 于2015-06-05加入
开放分组 全部用户
提交状态
分类标签
图论 网络流 Gomory-Hu树
分享题解
通过:14, 提交:28, 通过率:50%
Gravatarcstdio 100 0.038 s 0.32 MiB C++
Gravatarlalala 100 0.038 s 0.36 MiB C++
Gravatarlalala 100 0.038 s 0.38 MiB C++
Gravatarlalala 100 0.044 s 0.36 MiB C++
Gravatarlalala 100 0.045 s 0.36 MiB C++
Gravatarsosusosu 100 0.057 s 1.28 MiB C++
Gravatarmikumikumi 100 0.063 s 0.37 MiB C++
GravatarSatoshi 100 0.074 s 0.32 MiB C++
Gravatarmaijing 100 0.107 s 0.54 MiB C++
Gravatar_Itachi 100 0.119 s 1.00 MiB C++
关于 供水泵站 的近10条评论(全部评论)
开心的15min无脑写完,却怎么都不过样例,想%萌帝的代码,却发现和自己的做法不一样。
就这样开始纠结是不是自己读错题了或者算法有问题。。
20min后才发现:每次跑最大流的时候忘记把上一次的flow清零了。。
Gravatar_Itachi
2017-01-12 11:57 3楼
分治+网络流+最大生成树
Gravatar_Itachi
2017-01-12 11:15 2楼
Gomory-Hu树,可以O(n*maxflow)求所有点对间最大流
解题报告:
http://blog.csdn.net/wmdcstdio/article/details/46372489
Gravatarcstdio
2015-06-05 10:09 1楼

1994. [CF 343E]供水泵站

★★★   输入文件:pumpingstations.in   输出文件:pumpingstations.out   简单对比
时间限制:2 s   内存限制:256 MiB

【题目描述】

疯狂科学家Mike找到了一份工作。他的任务是管理一套供水泵站系统。

系统由n个水泵组成,从1到n编号。一些水泵之间有无向管道连接,水可以在其中双向流动(但同一时刻只能流向一个方向)。你知道每条管道的容量——每小时内在其中流动的最大水量,单位为升。每个水泵可以经由水管向其他水泵泵水,或接受泵来的水。需要确保每小时内流进该水泵的总水量恰好等于流出该水泵的总水量。

Mike的职责是在水泵间泵水。从水泵a到水泵b,根据上述规则,每小时经由管道(可能经过其他水泵)能够输送一定数量的水。在这段时间内,水不能流入水泵a,也不能流出水泵b。但是可以从水泵a流出任意数量的水,也能有任意数量的水流入水泵b。如果一小时内总共有x升水流出a,Mike就将多获得x元薪水。

为了得到报酬,根据合同,Mike需要工作n-1天。第一天他选择两个水泵v1和v2,然后在一小时内从v1向v2输送一些水。之后,在第i天,他选择一个之前从未选择过的水泵vi+1,并从水泵vi向水泵vi+1输送一些水。第i天输送的水量和第i-1天的无关

Mike需要赚取尽可能多的钱以进行他的项目。帮助Mike找到水泵编号的一个排列v1,v2,...,vn,使得Mike能获得尽可能多的薪水。

【输入格式】

第一行两个数n,m(2<=n<=200,1<=m<=1000),分别代表水泵和管道的数量。

接下来有m行,第i行有三个空格隔开的整数ai,bi,ci(1<=ai,bi<=n,ai≠bi,1<=ci<=100),分别代表该管道连接的两个水泵,以及管道的容量。假定任意两个水泵之间至多只有一条管道,而且任意两个水泵之间都有一条包含若干管道的路径相连。

【输出格式】

一行一个整数,即Mike能获得的最大钱数。

【样例输入】

6 11

1 2 10

1 6 8

2 3 4

2 5 2

2 6 3

3 4 5

3 5 4

3 6 2

4 5 7

4 6 2

5 6 3

【样例输出】

77

【提示】

方案之一为:6 2 1 5 3 4

和原题不同,这里并未要求输出方案。

【来源】

CODEFORCES 343E