POJ 3680 Intervals(費用流+離散化)
題目地址:POJ 3680
這題的建圖真心想不出來。建圖思維還是不夠開闊,不夠大膽。
這題要先對坐標進行離散化。可以用左邊的點發出一條到右邊的點的邊,容量為1,費用為負的權值。然後從左往右將依次將相鄰的兩個點都連起來,權值為0,容量為k,也就是說,如果選了這個區間,就會從費用為負數的邊流過去,否則,就是從這個費用為0的邊流過去。然後建立一個超級源點與最左邊的點相連,權值為0,容量為k,這樣就保證了重疊數之多為k,因為增廣路上所經過的區間必定是不重合的,而流量只有k,所以滿足題意。
代碼如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include