#include <stdio.h>
int main()
{
puts("转载请注明出处[vmurder]谢谢");
puts("网址:blog.csdn.net/vmurder/article/details/44081723");
}
PoPoQQQ大爷脑洞一开,就想出一种流进来是a,流出去是ak的边,他称之为“带变压器的边”,然后我们称之为PoPoQQQ流。
PoPoQQQ大爷有s个脑细胞,然后他可以通过让脑细胞
去做一些鬼畜问题来使得脑细胞得到成倍数的增长。但
是有一些问题需要前置问题,即思考过某问题的脑细胞
才可以做这个问题,同时,一个问题的难度有限,所以
有派去思考问题的脑细胞数量上限。问最后PoPoQQQ最
多能获得多少个脑细胞?
第一行两个数n,m,s表示有n个问题节点,m条问题前置
,初始有s个脑细胞。PoPoQQQ的脑细胞最初在1号节点,
其它节点都是问题节点。
接下来m行每行表示一个节点的问题可以由某节点的脑细
胞来思考,给出u,v,len,mul表示u的脑细胞可以去
思考v的问题,然后这个问题至多由len个脑细胞来思考,
思考后每个脑细胞会变成新节点的mul个脑细胞。
一行,一个整数x,表示PoPoQQQ最多获得的脑细胞个数。
4 4 3
1 2 3 8
2 3 1000 10
1 4 1 15
4 2 1 7
240
图一定是一个拓扑图,然后点数待定。
首先我们机房的小伙伴都不会做这道题,或者说本来有看起来很有正确性的做法,但是后来我们找出了一坨反例,或者说最大流无法解决,但是我们仍要说一下这种做法——PoPoQQQ流。
思路很简单,就是流量从一条边
上题中汇点神马的不重要啦,所有点向汇点连一条增幅为1倍的无限流量边就好啦~~
或许可以拿分数类乱搞,或者long double?总之shenmegui
dinic?那么怎么保证“增广?”
然后dinic一个点往外流的时候,可以向若干个出点中任意一个增广,是因为然后流出去了1流量答案就+1,而PoPoQQQ流并不如此。同样的一个流量,这走就是5,那走就是10000,然后直接流到汇点就是0。
唉,目前只能留坑了。
在这里先Orz一下PoPoQQQ大爷。
原文地址:http://blog.csdn.net/vmurder/article/details/44081723