題目地址:HDU1853
費用流果然好神奇。。還可以用來判斷環。。。如果每個點都是環的一部分而且每個點只能用到一次的話,那每個點的初度入度都是1,這就可以利用網絡流來解決,只要拆點令其流量為1,就限制了每個點只能用一次,每次左邊的連到右邊的,就相當於左邊點的一次初度和右邊的點的一次入度,很容易想象出來。最後只要判斷總流量是否為n即可,因為如果總流量為n的話,說明每個點都出了一次度,每個點都入了一次度,而且由於拆點的流量限制,充分說明了每個點的初度入度都是1.進而說明了每個點都在環裡。然後輸出最後的最小費用流即為最短距離。
代碼如下:
#include
#include
#include
#include
#include
#include
#include
#include