[題解] UVa 11747 - Heavy Cycle Edges
Tags
- 題解
- UVa
- D難度
略譯
給一無向圖,有兩種方法可以生成 Minimum Spanning Tree
一:先把所有邊拿掉,從最小邊開始,只要放了不產生 cycle 就加進去
二:一直把每個 cycle 最大的邊拔掉,直到沒有 cycle
現在我們需要一個程式來輔助第二種解法:
給你一個無向圖,保證邊權不重覆,
找出解法二過程中,所有在 cycle 中因最重而被拔掉的邊
題解
MST 相關問題
首先,要找出 cycle 並且拔邊,是相對困難且複雜的;
但題目給出了提示:
拔完後的成果和方法一的成果一樣,都是一棵 MST
意即:
原圖的邊集合 = MST + 方法一沒加入的邊
原圖的邊集合 = MST + 方法二拔掉的邊
=> 方法一沒加入的邊 = 方法二拔掉的邊
也就是說,這題要求的是 Kruskal 法(即方法一)下,
所有不在 MST 上,被剔除的邊
實作提示
- 同樣是求解 MST,Prim 在這題相對不好用
cmusu