網路流大 大 大 總結

2022-04-06 17:13:31 字數 2009 閱讀 7943

網路流的知識很多,很複雜,很久就想寫一篇網路流的總結了。

下面介紹網路流的基本模型等。

題目一般在網路流24題裡。

下文中,為了方便閱讀,擁有更好的閱讀體驗,定理部分已經新增引用,專業名詞已經用藍色背景標出,證明部分已用下劃線標出。

關於網路流的基本知識和基本定理,下面會用到。

滿足容量限制的情況下,流過的量盡量多。

一般有ek,dinic,isap演算法。

基本定理:

最大流=最小割

平面圖:所有的邊只在頂點處相交,(邊不相交)。

對偶圖:對於每乙個平面圖, 都有與其相對應的對偶圖。

轉化及性質

平面圖的最小割:spfa。

典型例題:狼抓兔子。

點覆蓋集是無向圖的乙個點集,使得該圖中的所有邊至少有乙個端點在該集合內。點數最少的點覆蓋集被稱為最小點覆蓋集。

二分圖中最小點覆蓋集 = 二分圖最大匹配數

證明:matrix67

最小點權覆蓋集:帶點權無向圖,點權和最小的覆蓋集。

建立源點,向x部每個點連邊,邊權為點權;建立匯點,從y部的每個點向t連邊,邊權為點權,二分圖中的邊看成有向的,邊權為inf,最小點權覆蓋即最小割。

明:建圖後,任意一條從s-t的路徑,一定具有s-u-v-t的形式。割的性質是不存在一條從s到t的路徑。故路徑上的三條邊中至少有一條在割中。人為的使得(u,v)不在割中,即建立容量為inf的邊(u,v)。則(s,u),(v,t)至少有一條邊在最小割中,正好與點覆蓋集限制條件的形式相符合(u->v,這條邊,選u或者選v)。目標為求最小化點權之和,恰好也是最小割的優化模型。

點獨立集是無向圖的乙個點集,使得該集合中任意兩個點之間不連通。點數最多的點被稱為最大點獨立集最大點獨立集。

最大獨立集與最小覆蓋集互補,所以:

二分圖中最大獨立集 = 所有點數 - 最小點覆蓋集

最大點權獨立集:無向圖中,點權之和最大的點獨立集。

最大點權獨立集 = 總權值 - 最小點權覆蓋集

在乙個有向圖中,找出最少的路徑,使得這些路徑經過了所有的點。

最少路徑覆蓋:找最少的路徑覆蓋了所有的點。

最小路徑覆蓋分為兩種:

最小不相交路徑覆蓋:每一條路徑經過的頂點各不相同。

最小可相交路徑覆蓋:每一條路徑經過的頂點可以相同。

特別的,每個點自己也可以稱為是路徑覆蓋,只不過路徑的長度是0。

最小不相交路徑覆蓋:

將每個點拆成兩個點,乙個作為有向邊的起點(出發點),另乙個作為終點(接收點)。對於邊(x->y),x1->y2;

現在形成了乙個二分圖,那麼:

最小路徑覆蓋 = 原圖的結點數 - 二分圖的最大匹配數。

證明:初始每個點都是獨立的一條路徑,總共有n條不相交路徑。每次在二分圖里找到一條匹配邊就相當於把兩條路徑合成了一條路徑,相當於路徑數減少了1。所以找到了幾條匹配邊,路徑數就減少了多少。

最小可相交路徑覆蓋

用floyd做一次傳遞閉包,a->b有一條路徑,變成a->b有一條邊,然後就轉化成了 最小不相交路徑覆蓋。

邊覆蓋集是無向圖的乙個邊集,使得該圖中所有頂點都至少是集合內邊的乙個端點。

最小邊覆蓋集是在無向圖中,邊數最少的邊覆蓋集。

最小邊覆蓋=最大點獨立集

戳這

用到01分數規劃。

留坑每條邊增加了一費用,表示流過這條邊1流量,花費的費用。

最小費用最大流:滿足最大流的前提下,費用最小。

戳這未完待續~

大大大大盆啊

說下我的經歷吧 本人雙非本科大學的女大二學生一枚,馬上大三了,電腦科學與技術專業,報了九月份的 第十七次 ccf 計算機軟體能力認證 本人的程式設計能力真的超級超級一般,這常常讓我在一群大佬面前什麼自卑,有的時候都不好意思說自己是計科專業的,大一大二這兩年吧,過的渾渾噩噩,啥有用的經歷都沒有 大一學...

大大的意見

這是我在這的第一篇文章,我有大大的意見啊 我積分老不夠,雜老是不給我分呢,我有急用啊 我希望,能趕快弄點分 我一直在學linux,具體一點,我用的是ubuntu,具體方向就是搞嵌入式linux系統開發。不過可憐的是,我還沒有板子,我試著用skyeye,但現在還沒搞好,不過沒關係,我還是會把它弄好的,...

演算法分析 大O 大 大

在演算法的學習中,最開始便是要學習演算法的分析。學習演算法分析時,我們便會接觸到這麼幾個符號 大o 大 大 常常讓人難以理解。在通常的演算法分析時,我們可以明白,在輸入規模較小,各種演算法之間的時間消耗並無明顯差別。只有當輸入規模較大時,對各個演算法之間消耗差別的對比與分析才有意義。所以上面幾個符號...