本來打算昨天寫兩道題的,結果這個題卡住了,最後才發現是最後的判斷條件出錯了,判斷滿流的條件應該是與n的比較,竟然寫成與所有星球總容量的比較了。(最近大腦短路。。)
這題也不是完全自己想的,沒想到縮點這一技巧,由於n的數據范圍太大,普通的建圖方法會超時超內存,需要縮點,因為對於每個點來說,一共只有2^10種方法,而最多一共有10W個點,顯然有很多點是重復的,這時可以采取縮點的方法,將重復的當成一個點來處理。這樣數據范圍就縮小到了1024個點,速度大大提升。
建圖思路是建一源點與匯點,將每種方法與源點相連,權值為這種方法重復的次數,將每個星球與匯點相連,權值為每個星球的最大容量,再將每種方法與星球相連,權值為INF,最後判斷是否滿流。
代碼如下:
#include
#include
#include
#include
#include
#include
#include
#include