node 1:最小路徑覆蓋
在乙個pxp的有向圖中,路徑覆蓋就是在圖中找一些路經,使之覆蓋了圖中的所有頂點,且任何乙個頂點有且只有一條路徑與之關聯;(如果把這些路徑中的每條路徑從它的起始點走到它的終點,那麼恰好可以經過圖中的每個頂點一次且僅一次);如果不考慮圖中存在迴路,那麼每條路徑就是乙個弱連通子集.
由上面可以得出:
1.乙個單獨的頂點是一條路徑;
2.如果存在一路徑p1,p2,......pk,其中p1 為起點,pk為終點,那麼在覆蓋圖中,頂點p1,p2,......pk不再與其它的頂點之間存在有向邊.
最小路徑覆蓋就是找出最小的路徑條數,使之成為p的乙個路徑覆蓋.
路徑覆蓋與二分圖匹配的關係:
最小路徑覆蓋=|p|-最大匹配數;
其中最大匹配數的求法是把p中的每個頂點pi分成兩個頂點pi'與pi'',如果在p中存在一條pi到pj的邊,那麼在二分圖p'中就有一條連線pi'與pj''的無向邊;這裡pi' 就是p中pi的出邊,pj''就是p中pj 的一條入邊;
對於公式:最小路徑覆蓋=|p|-最大匹配數;
可以這麼來理解:
如果匹配數為零,那麼p中不存在有向邊,於是顯然有:
最小路徑覆蓋=|p|-最大匹配數=|p|-0=|p|;
即p的最小路徑覆蓋數為|p|;
p'中不在於匹配邊時,路徑覆蓋數為|p|;
如果在p'中增加一條匹配邊pi'-->pj'',那麼在圖p的路徑覆蓋中就存在一條由pi連線pj的邊,也就是說pi與pj 在一條路徑上,於是路徑覆蓋數就可以減少乙個;
如此繼續增加匹配邊,每增加一條,路徑覆蓋數就減少一條;直到匹配邊不能繼續增加時,路徑覆蓋數也不能再減少了,此時就有了前面的公式;但是這裡只是說話了每條匹配邊對應於路徑覆蓋中的一條路徑上的一條連線兩個點之間的有向邊;下面來說明乙個路徑覆蓋中的每條連線兩個頂點之間的有向邊對應於一條匹配邊;
與前面類似,對於路徑覆蓋中的每條連線兩個頂點之間的每條有向邊pi--->pj,我們可以在匹配圖中對應做一條連線pi'與pj''的邊,顯然這樣做出來圖的是乙個匹配圖(這一點用反證法很容易證明,如果得到的圖不是乙個匹配圖,那麼這個圖中必定存在這樣兩條邊 pi'---pj'' 及 pi' ----pk'',(j!=k),那麼在路徑覆蓋圖中就存在了兩條邊pi-->pj, pi--->pk ,那邊從pi出發的路徑就不止一條了,這與路徑覆蓋圖是矛盾的;還有另外一種情況就是存在pi'---pj'',pk'---pj'',這種情況也類似可證);
至此,就說明了匹配邊與路徑覆蓋圖中連線兩頂點之間邊的一一對應關係,那麼也就說明了前面的公式成立!
(摘自:
下面的幾道題都是這類題目,可以練練手:
zoj 1364 || poj 1325
zoj 1525 || poj 1422
node 2:最小點覆蓋
二分圖中,選取最少的點數,使這些點和所有的邊都有關聯(把所有的邊的覆蓋),叫做最小點覆蓋。
最小點覆蓋數 = 最大匹配數
證明:node 3:最大獨立點集
在乙個二分圖中,選擇一些頂點,使得所選擇的點集中任意兩個頂點之間沒有邊相連
可以證明,最大獨立頂點集 = 總頂點數 - 最大匹配數
摘自:ps:由上面結論可得,最小覆蓋點集和最大獨立點集互補,即
最小點覆蓋 + 最大獨立點集 = 總頂點數
類似的,在帶點權的二分圖中,最小點權覆蓋集 + 最大點權獨立集 = 總權和
最小點覆蓋 最大獨立集
在二分圖中,找出乙個最小的點集,使之覆蓋所有的邊,這個問題被稱為二分圖的最小點覆蓋。k nig定理 二分圖最小點覆蓋包含的點數等於這個二分圖的最大匹配數。證明 1.求出二分圖的最大匹配,定義 匹配邊為包含在最大匹配裡的邊,匹配點為與匹配邊相連的點。2.從二分圖右部的非匹配點開始,按照 非匹配邊 匹配...
最小路徑覆蓋問題(最小路徑覆蓋)
本題題目描述可以發現很明顯的最小路徑覆蓋問題,又因為最小路徑覆蓋 節點數 二分圖最大匹配數,所以本題可以用匈牙利演算法求出二分圖最大匹配數,也可以向第一題那樣用網路流模型求出最大匹配數。本題建模時不同在於,每個點要分成兩個點,乙個為起點,乙個為終點,再來求二分圖最大匹配。然後麻煩就在於本題也要輸出路...
最小路徑覆蓋
zoj 2521 led display 題意 七段數碼顯示器,乙個數碼上的7段燈可以選擇滅掉一些後重複使用這個數碼,但滅掉的段不能再亮了。比如 6 可以 滅掉左小角的一段變成 5 來使用。但自己不能重複使用,即最少滅一段才能再次使用。現在按次序給出 乙個要現實的數碼序列,求需要的最少的燈數,使得能...