大致題意:給出一個帶權無向圖,每條邊有一個邊權wi,求將S和T分開的一個割邊集C,使得該割邊集的平均邊權最小,即最小化∑wi / |C| 。
詳見amber關於最小割模型的論文
思路:amber論文中詳細講解了如何轉化成函數及建圖,值得注意的是當邊被重新賦權後,對於wi < 0 的邊權,該邊必然在最小割中,不必再建邊,直接加入最大流中即可,因為求最小割時邊權都為正值。
最後輸出的是所選割邊的序號。求割邊無非是從源點dfs,每次走殘量網絡中流量大於0的邊並標記端點,最後判斷邊的兩個端點一個標記一個未標記,那麼該邊便是割邊。
這題我TLE了13次,最後是因為Dinic的原因,可能之前的那個模板耗時太長了。改成了學長的Dinic,瞬間就A了。
#include
#include
#include
#include
#include