點雙連通份量與割點

前言

在圖論中,除了在有向圖中的強連通份量,在無向圖中還有一類雙連通份量html

雙連通份量通常是指點雙連通份量spa

固然,還有一種叫作邊雙連通份量code

點雙連通份量

對於一個連通圖,若是任意兩點至少存在兩條「點不重複」的路徑,則說圖是點雙連通的(即任意兩條邊都在一個簡單環中),點雙連通的極大子圖稱爲點雙連通份量。htm

計算方法比較簡單blog

在tarjan的過程當中,若是由\(i\) dfs到\(j\),而且\(low[j]>=dfn[i]\),那麼進行彈棧直到\(j\)被彈出,彈出的點加上\(i\)構成了一個點雙連通份量。
(實際就是在搜索樹種這個點和它下面的點構成了一個雙連通份量)get

注意在tarjan的過程當中,咱們能夠選擇存邊,也能夠存點,不過存點的話邊界條件要變一下class

do
{
    h=s.top();s.pop();
    #¥%……&*(()
}while(h!=edge[i].v);//warning

與二分圖的關係

(1) 若是一個點雙連通份量內的某些頂點在一個奇圈中(即雙連通份量含有奇圈),那麼這個雙連通份量的其餘頂點也在某個奇圈中;搜索

(2) 若是一個點雙連通份量含有奇圈,則他一定不是一個二分圖。反過來也成立,這是一個充要條件。方法

例題

POJ 2942top

題解

割點(割頂)

割點:對於無向圖中的點\(i\),若去掉\(i\)點,無向圖的連通快個數會增長,則稱點\(i\)爲割點

不難發現一個點是割點當且僅當他在多個點雙裏。

考慮以前求點雙的過程,找到一個點雙時,那個\(i\)就是一個割點。

根節點須要特判一下,必需要有至少\(2\)個孩子時纔是割點。

例題

洛谷P3388

題解

相關文章
相關標籤/搜索