2019正睿金華集訓 0801總結 網路流

2021-09-25 19:29:24 字數 1984 閱讀 7517

今天終於講了久仰其大名的網路流。

網路流是乙個有向圖.

容量:每條邊都有乙個容量(水管的最大水流容量)

源點:出發點(水廠)。

匯點:結束點(廢水站)。

流:乙個合法解稱作乙個流,也就是一條可以從源點到匯點的一條合法路徑。

流量:每條邊各自被經過的次數稱作其流量,最終收集的總數為整個流的流量。

三個性質:

1.容量限制:流量小於等於容量,即f(u,v)<=c(u,v)

2.流量守恆:除了源點和匯點,每個點的總流入量等於總流出量【即無法儲存量】

3.斜對稱性:f(u,v)= - f(u,v)

最大流:從源點能最多發出多少流量到匯點且不會超過每條邊的容量

三種網路:

1.容量網路:就是容量組成的網路。

2.流量網路:實際流量組成的網路。

3.殘留網路:每條邊的容量減去流量得出的網路,如果是0,則視為斷開。

另外,殘量網路中還包含原圖中所有邊的反向邊,容量等同於正向邊在流量網路中當前流量,用於「反悔」時將流送回起點。

割乙個對於點集v的劃分,將v劃分為兩個集合s與t,其中源點s在s中,匯點 t在t中。

對於乙個流f而言:

割(s,t)間的網路流量定義為:∑u⊆

s∑v⊆

t\sum_\sum_

∑u⊆s​∑

v⊆t​

f (u

,v

)f(u,v)

f(u,v)

-∑ u⊆

s∑v⊆

t\sum_\sum_

∑u⊆s​∑

v⊆t​

f (v

,u

)f(v,u)

f(v,u)

割(s,t)的容量定義為∑u⊆

s∑v⊆

t\sum_\sum_

∑u⊆s​∑

v⊆t​

c (u

,v

)c(u,v)

c(u,v)

最小割為割的容量最小的那個。

增廣路在殘量網路中s到t的一條簡單路徑【容量為0視作斷開】

結論:一.增廣後的網路的流量等於殘量網路中流量加上流量網路中流量。

二.增廣後流量網路中流量增加

三.對於任意流f,任意割之間的網路流量不變。

四. 任意流的流量不超過任意割的容量。

定理:最大流最小割定理

對於乙個網路g,下面三個命題總是等價

1.流f是g的最大流。

2.當前流f 的殘量網路g_f上不存在增廣路。

3.存在某個割使得|f| = c(s, t)成立。由引理四可知,滿足條件的割必定是最小割。

最大流演算法:

一.增廣路演算法(ff演算法):

1.在圖上找到一條增廣路

2.去增廣路上的殘量最小值v。(也就是流過的路徑中流量最小的那乙個)

3.將答案加上v。

4,.將增廣路上所有邊的殘量減去v,反向邊的殘量加上v。

重複上邊4個步驟直到找不到增廣路為止。

二.ek演算法

該演算法是在ff演算法基礎上的改進。

考慮每次都選擇最的增廣路進行增廣。

【增廣路長度定義為源點到匯點經過的邊數】

三.dinic演算法

對於ek演算法有乙個顯然的優化:

ek演算法是一遍bfs中找到一條增廣路。

而dinic演算法是一遍bfs後構建出乙個可行網路,在可行網路中dfs多條增廣路進行增廣。

可行邊:在殘量網路中,若兩個端點間的最短路恰好差1,就稱之為可行邊

可行網路:由可行邊組成的網路

然後發現網路流的模板其實很容易,但主要關鍵是對乙個問題建模,轉換成網路流的問題。所以網路流問題的難點就是如何建模。

推薦部落格

2019正睿金華集訓 0804總結

今天感受了b班考試的難度,果然好難,接近爆蛋,暴力分都不太好拿。考試歷程 先看了一下三個題面,發現就第二題的暴力好寫一點,隨後又想到了並查集,然後去寫t2,過了樣例然後我就不管了 以為自己可以拿到暴力分 t3這道題我只想說,貌似除了暴力我好像也寫不了,於是我寫了乙個大暴力,由於是輸出方案,評測機是s...

2019 8 10 金華正睿集訓總結Day14

今天講的例題部分day1講過,這裡不重複了,見day1部落格 期望的平方和平方的期望不同 e x1 x2 2 e x1 2 e x2 2 2e x1x2 當x 0或1 時,x2 x 乙個重要的等式 只對第一行設變數,最後一行列方程 需要注意零轉移情況 有時候max的期望不好算,但min的期望很好算 ...

2019 8 12 金華正睿集訓總結Day16

n個數的排列,其中有k個滿足pi i 1的排列個數 e n,k k 1 e n 1,k n k e n 1,k 1 斯特林數 尤拉數的求和技術及應用 從左到右填數,記錄上乙個填的在未填數中的排名 從小到大 從大到小 插入數,記錄某些資訊 對十進位制數 二進位制數的某個統計 統計 l,r 內滿足某個條...