tarjan求割點割邊的思考

2022-05-06 16:24:14 字數 562 閱讀 5250

這個文章的思路是按照這裡來的。這裡討論的都是無向圖。應該有向圖也差不多。

首先來看求割點。割點必須滿足去掉其以後,圖被分割。tarjan演算法考慮了兩個:

如果\(low[b]>=dfn[a]\),a一定是割點。因為\(low[b]>=dfn[a]\)說明有在b這個子樹中,裡面所有點都互相搞來搞去,但是不能搞到a上面去,所以把a切斷以後,這個子樹就被隔離了。所以僅僅乙個子樹就可以讓a成為割點。反之如果所有a的孩子b,都滿足\(low[b],那麼a就不是割點。

橋也必須滿足去掉其以後,圖被分割。所以對於一條邊(a, b),如果\(low[b]>=dfn[a]\),那他就是橋(不證了)。

還有乙個low和dfn的問題:在tarjan求割點時,如果v在棧中,必須寫成low[u]=min(low[u],dfn[v])。因為u可能被傳送到了非樹枝邊到不了的地方。但是求強連通分量可以這樣,因為它是有向圖,如果它的祖宗能連到它,他又能連到他的祖宗,那麼它的祖宗能連到的地方,他也能連到。同理無向圖求割點就不能這樣。

tarjan求割邊割點

內容及 來自 割邊 在連通圖中,刪除了連通圖的某條邊後,圖不再連通。這樣的邊被稱為割邊,也叫做橋。割點 在連通圖中,刪除了連通圖的某個點以及與這個點相連的邊後,圖不再連通。這樣的點被稱為割點。dfs搜尋樹 用dfs對圖進行遍歷時,按照遍歷次序的不同,我們可以得到一棵dfs搜尋樹。樹邊 在搜尋樹中的藍...

tarjan演算法求割點割邊

在上一節我們已經知道tarjan演算法可以求聯通圖,在這裡我們也運用tarjan的思想求割點與割邊,首先我們先來說說割點,那麼什麼事割點呢,先來看一張圖 a 來自網路 在 a 圖中,我們將a點以及與a點相連的邊全部去除,會發現這個聯通圖被分成了倆個聯通圖,乙個是節點f,另外乙個是餘下的所有的節點組成...

tarjan求割點和割邊

概念 割點 在乙個無向圖中,如果刪除某個頂點,這個圖就不再連通 任意兩點之間無法相互到達 那麼這個頂點就是這個圖的割點。割邊 橋 在乙個無向圖中刪除某條邊後,圖不再連通,那麼這條邊就是這個圖的割邊 也叫作橋 求法 x 為樹根,且 x 有多於乙個子樹。x 不為樹根,且滿足 x 為 to 在搜尋樹中的父...