最小割 + 網絡流變體

  這幾天去搞了搞基礎的算法,就把網絡流放了幾天,如今上來總結一下網絡流的各類變體,有相似題目的話我儘可能會附加。算法

  最小割

    所謂圖的割,指的是對於某個頂點集合S, 從S發出指向S外部的那些邊的集合,記爲割(S, V\S)。這些邊的容量之和被稱爲割的容量。對應到流的圖中,若是有源點s belong to S,, 而匯點t belong to (V \ S),那麼此時的割又稱爲s - t割。若是將網絡中s - t割的全部邊都刪除,也就不會再有s到t的路徑。網絡

最小割問題:對於給定網絡,爲了保證從s 到t沒有路徑,須要刪除的邊的總容量的最小值是多少?blog

最大流最小割定理:最大流的流量等於最小割的容量。基礎

  最大流的各類變體

1.多個源點的多個匯點的網絡流:im

  創建超級源點s,而且創建從超級源點到其它源點的容量爲無窮,創建超級匯點,從其它匯點到超級匯點創建一條容量爲無窮的邊。求出從s到t的最大流便可。總結

2.無向圖上的最大流:模版

  把無向圖轉換爲有向圖,只須要把無向圖中容量爲c的邊創建一條反向邊,兩條邊同時存在,求出最大流便可。img

3.頂點上也有容量限制的狀況:集合

  圖中不光邊上有容量限制,途中通過的頂點也有總流入兩個總流出量限制的狀況應該如何處理呢?此時咱們能夠把每一個頂點拆成兩個頂點,拆點以後獲得兩個頂點分別爲入頂點和出頂點,將指向原先頂點的邊改爲指向入頂點,將從原先頂點指出的邊改爲從出頂點指出。而且,再從入頂點向出頂點連容量爲原先頂點容量的邊,就能夠把頂點上的容量限制轉爲邊上的容量限制。比賽

4.有最小流限制的狀況:

  是指每條邊不光有最大流C限制,還有最小流量B的限制的狀況,也即(B(e) <= f(e) <= C(e))。令f'(e) = f(e) - B(e),這就能夠轉化爲只有最大流量限制的狀況,也即0 <= f'(e) <= C(e) - B(e)。

而此時頂點對應的總流入量和總流出量的關係變爲

挖個坑,打完比賽再補上,如今要去作模版題了,嚶嚶嚶

相關文章
相關標籤/搜索