最小路徑覆蓋

2021-10-01 18:12:58 字數 321 閱讀 1735

最小路徑覆蓋

最小路徑覆蓋(path covering):是「路徑」 覆蓋「點」,即用盡量少的不相交簡單路徑覆蓋有向無環圖g的所有頂點,即每個頂點嚴格屬於一條路徑,路徑的長度可能為0(單個點)。

最小路徑覆蓋數=g的點數-最小路徑覆蓋中的邊數。應該使得最小路徑覆蓋中的邊數盡量多,但是又不能讓兩條邊在同乙個頂點相交。

拆點:將每乙個頂點i拆成兩個頂點xi和yi。然後根據原圖中邊的資訊,從x部往y部引邊。所有邊的方向都是由x部到y部。因此,所轉化出的二分圖的最大匹配數則是原圖g中最小路徑覆蓋上的邊數。

因此由最小路徑覆蓋數=原圖g的頂點數-二分圖的最大匹配數便可以得解。

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

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

最小路徑覆蓋

zoj 2521 led display 題意 七段數碼顯示器,乙個數碼上的7段燈可以選擇滅掉一些後重複使用這個數碼,但滅掉的段不能再亮了。比如 6 可以 滅掉左小角的一段變成 5 來使用。但自己不能重複使用,即最少滅一段才能再次使用。現在按次序給出 乙個要現實的數碼序列,求需要的最少的燈數,使得能...

最小路徑覆蓋

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