[网络流24题] 太空飞行计划
时间限制:1 s 内存限制:128 MB
【问题描述】
E
E
E
Em
I
I
I
In
Ej
I
Rj
I
Ik
ck
Ej
pj
【编程任务】
【数据输入】
【结果输出】
【输入文件示例】shuttle.in
2 3 10 1 2 25 2 3 5 6 7
【输出文件示例】shuttle.out
1 2 1 2 3 17
对于第三行的数字如何求,我们可以这样理解。
可能并不严谨
令f1为所有实验赞助钱总和,f2为不选的实验赞助总和,f3为所选实验需要器材的价钱总和。
那么我们最终要求得就是f1-f2-f3
即f1-(f2+f3)
容易发现f2+f3事实上是原图中的一个割,那么求出最小割即可。
对于输出方案,我一直不理解,后来看了BYVoid的blog,感觉顿悟。
一句话:因为最后一次分层,s不再能到达t,所以原图已经被最小割分为了两个不连通的图,而s所在的那张图是原图的一个最大闭合子图,也就是题目所求,所以只需要知道s最后能遍历到那些点,就可以输出方案了。