?
本来打算昨天写两道题的,结果这个题卡住了,最后才发现是最后的判断条件出错了,判断满流的条件应该是与n的比较,竟然写成与所有星球总容量的比较了。(最近大脑短路。。)
这题也不是完全自己想的,没想到缩点这一技巧,由于n的数据范围太大,普通的建图方法会超时超内存,需要缩点,因为对于每个点来说,一共只有2^10种方法,而最多一共有10W个点,显然有很多点是重复的,这时可以采取缩点的方法,将重复的当成一个点来处理。这样数据范围就缩小到了1024个点,速度大大提升。
建图思路是建一源点与汇点,将每种方法与源点相连,权值为这种方法重复的次数,将每个星球与汇点相连,权值为每个星球的最大容量,再将每种方法与星球相连,权值为INF,最后判断是否满流。
代码如下:
?
#include
#include
#include
#include
#include
#include
#include
#include
?