網絡流略解 網絡流 24 題索引

網絡流

網絡流 (network-flows) 是一種類比水流的解決問題方法,與線性規劃密切相關。圖論中的一種理論與方法,研究網絡上的一類最優化問題。在這裏插入圖片描述
網絡流的圖可以抽象成以下模型。

對於一張邊權圖,每條邊的權值指流量。流量 是指允許通過該邊的最大權,而可以有不限多的權同時停留在一點上。

特別地,一圖中存在兩特殊點:源點和匯點。
源點 指初狀態擁有無窮多權的點。一般題目不提供這個點(告訴你就等於告訴你是網絡流了),它是一個虛點。
匯點 指出度爲 00 的、用於記錄答案的虛點。
如上圖所示,STST 是源點,EDED 是匯點。

求從源點通過邊走到匯點的權的最大值。這就是 最大流 問題。你可以把它想象成:有一些水管,它們有一定的耐久度,流過一定量的水後就會斷裂失效。從一個有無窮多水的點開始流,最多有多少水流到匯點。

使用 Dinic 算法求最大流步驟如下。

  1. 把源點視爲第一層,嘗試遍歷所有點並求出深度;
  2. 嘗試 從淺到深 的順序 從源點開始 流;
  3. 重複 1. 2. 操作。若無法搜到匯點,結束算法。

例題

求下圖的最大流。
在這裏插入圖片描述其中 inf\inf 表示無窮大。

我們首先從 STST 分別流 inf\inf1,2,31,2,3。嘗試 15,6; 5,6ED1\to5,6;\ 5,6\to ED,對答案貢獻爲 2225,tED,ans+52\to5,t\to ED,ans+534,4ED,ans+13\to4,4\to ED,ans+1
所以最大流爲 2+5+1=82+5+1=8

當題目描述與“流水”無關時,嘗試將題目轉換成流水模型。

網絡流 24 題索引

序號 題目 題解
1 P2756 飛行員配對方案問題 已解決
2 P2761 軟件補丁問題 未解決
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章