【脑洞大开】一种神奇的[网络流?]——PoPoQQQ流

来源:互联网 发布:虚拟定位软件 编辑:程序博客网 时间:2024/06/05 19:13

广告:

#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 31 2 3 82 3 1000 101 4 1 154 2 1 7

样例输出:

240

数据约定:

图一定是一个拓扑图,然后点数待定。

关于题的一些想法:

首先我们机房的小伙伴都不会做这道题,或者说本来有看起来很有正确性的做法,但是后来我们找出了一坨反例,或者说最大流无法解决,但是我们仍要说一下这种做法——PoPoQQQ流。

PoPoQQQ流:

思路很简单,就是流量从一条边i流过去以后,然后原来的流量变成原来的ki倍,退流的时候反向弧的倍数设置成1ki就好了。
上题中汇点神马的不重要啦,所有点向汇点连一条增幅为1倍的无限流量边就好啦~~

目前存在的一些问题:

1 . 小数

或许可以拿分数类乱搞,或者long double?总之shenmegui

2 . 用什么算法来解决这坨网络流?

dinic?那么怎么保证“增广?”
然后dinic一个点往外流的时候,可以向若干个出点中任意一个增广,是因为然后流出去了1流量答案就+1,而PoPoQQQ流并不如此。同样的一个流量,这走就是5,那走就是10000,然后直接流到汇点就是0。

3 . ……

PoPoQQQ Orz

唉,目前只能留坑了。
在这里先Orz一下PoPoQQQ大爷。

3 0
原创粉丝点击