最小覆蓋問題

2021-07-15 06:34:48 字數 429 閱讀 1092

acm模版

最小路徑覆蓋o(n^3)路徑覆蓋:就是在圖中找一些路經,使之覆蓋了圖中的所有頂點,且任何乙個頂點有且只有一條路徑與之關聯。

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

路徑覆蓋與二分圖匹配的關係:最小路徑覆蓋=|p|-最大匹配數;其中最大匹配數的求法是把p中的每個頂點pi分成兩個頂點pi』與pi」,如果在p中存在一條pi到pj的邊,那麼在二分圖p』中就有一條連線pi』與pj」的有向邊(求二分圖匹配時必須是單向邊);這裡pi』就是p中pi的出邊,pj」就是p中pj的一條入邊;

有向圖: 最小路徑覆蓋=|p|-最大匹配數;

無向圖: 最小路徑覆蓋=|p|-最大匹配數/2;

結論:乙個二分圖中的最大匹配數等於這個圖中的最小點覆蓋數。

《二分圖匹配相關》

最小圓覆蓋問題

最小圓覆蓋問題 乙個很經典的問題。題目大概是,平面上n個點,求乙個半徑最小的圓,能夠覆蓋所有的點。首先,我們可以從乙個空集r開始,不斷把平面上的點加入到r中,同時維護r的外接圓最小,就可以得到乙個簡單的解法。另外一種想法是,先任意選取兩個點,以這兩個點的連線為直徑作圓。再以此判斷剩餘的點,看它們是否...

DP 最小覆蓋問題

原題 找最低沒被覆蓋到的點,並在它的祖父處設乙個消防站。考慮到這個點的所有子孫後代都已經被覆蓋了,因此這時覆蓋祖父能蓋到更多額外的點,並保證結果不會更差。很多思路是用dfs或堆求取最低節點,實際上沒必要,只要預處理出深度 邊輸入邊處理 並排序,碰到已覆蓋就跳過,未覆蓋就在祖父處設消防站,ans 問題...

最小路徑覆蓋問題(最小路徑覆蓋)

本題題目描述可以發現很明顯的最小路徑覆蓋問題,又因為最小路徑覆蓋 節點數 二分圖最大匹配數,所以本題可以用匈牙利演算法求出二分圖最大匹配數,也可以向第一題那樣用網路流模型求出最大匹配數。本題建模時不同在於,每個點要分成兩個點,乙個為起點,乙個為終點,再來求二分圖最大匹配。然後麻煩就在於本題也要輸出路...