略譯

原題目連結

給一無向圖,有兩種方法可以生成 Minimum Spanning Tree
一:先把所有邊拿掉,從最小邊開始,只要放了不產生 cycle 就加進去
二:一直把每個 cycle 最大的邊拔掉,直到沒有 cycle

現在我們需要一個程式來輔助第二種解法:
給你一個無向圖,保證邊權不重覆,
找出解法二過程中,所有在 cycle 中因最重而被拔掉的邊

題解

MST 相關問題

首先,要找出 cycle 並且拔邊,是相對困難且複雜的;
但題目給出了提示:

拔完後的成果和方法一的成果一樣,都是一棵 MST

意即:

原圖的邊集合 = MST + 方法一沒加入的邊
原圖的邊集合 = MST + 方法二拔掉的邊
=> 方法一沒加入的邊 = 方法二拔掉的邊

也就是說,這題要求的是 Kruskal 法(即方法一)下,
所有不在 MST 上,被剔除的邊

實作提示

  • 同樣是求解 MST,Prim 在這題相對不好用