最小路徑覆蓋的理解

2022-05-23 23:54:09 字數 1201 閱讀 2526

乙個pxp的有向圖中,路徑覆蓋就是在圖中找一些路徑,使之覆蓋了圖中的所有頂點,且任何乙個頂點有且只有一條路徑與之關聯;(如果把這些路徑中的每條路徑從它的起始點走到它的終點,那麼恰好可以經過圖中的每個頂點一次且僅一次);如果不考慮圖中存在迴路,那麼每條路徑就是乙個弱連通子集.

由上面可以得出:

1.乙個單獨的頂點是一條路徑;

2.如果存在一路徑p1,p2,......pk,其中p1 為起點,pk為終點,那麼在覆蓋圖中,頂點p1,p2,......pk不再與其它的頂點之間存在有向邊.

最小路徑覆蓋就是找出最小的路徑條數,使之成為p的乙個路徑覆蓋.

路徑覆蓋與二分圖匹配的關係(必須是沒有圈的有向圖):

最小路徑覆蓋=|p|-其中最大匹配數的求法是把p中的每個頂點pi分成兩個頂點pi'與pj'',如果在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 2521 led display 題意 七段數碼顯示器,乙個數碼上的7段燈可以選擇滅掉一些後重複使用這個數碼,但滅掉的段不能再亮了。比如 6 可以 滅掉左小角的一段變成 5 來使用。但自己不能重複使用,即最少滅一段才能再次使用。現在按次序給出 乙個要現實的數碼序列,求需要的最少的燈數,使得能...

最小路徑覆蓋

差不多是模板題了 分析 最小路徑覆蓋 n 最大匹配數 n為 總點數 因為匹配的點 相互 交叉形成一條條最長路徑 剩餘沒匹配的點需要進行就是需要匹配數 及 最小路徑覆蓋數 include using namespace std define maxn 1005 int match maxn int v...