1. 程式人生 > >POJ-2396-Budget

POJ-2396-Budget

poj family 方案 font post 一個 一起 建模 輸出結果

【題目大意】

  有一n*m的矩陣,但其間的具體數值未知,但知道某些元素值在某個區間內,再給出每行的和及每列的和,求任意一種可行方案,無解輸出"IMPOSSIBLE"。(Special Judge)

【題解報告】

  每行每列的和等於總和,考慮網絡流(許多流量元素流到一起,匯總到一條邊(和)),某個元素有上下界,考慮有上下界的網絡流。

【建模方式】

  以每以行為一個X點,每一列為一個Y點,建立二分圖。附加源點S,匯點T,連邊 S -> X 流量範圍為[0,每行的和],Y -> T 流量範圍為[0,每列的和]。連邊 X -> Y 流量範圍為[X行Y列元素下界,X行Y列元素上界]。問題轉換為有源匯有上下界的可行流,最後沿殘量網絡上的邊輸出結果。

【原理】

  流過的流量表示元素的真實數值,元素上下界對應網絡流中的上下界,求解有源匯的網絡流即可。

POJ-2396-Budget