雙連通分量和強連通分量的總結

2022-03-04 04:37:49 字數 1482 閱讀 5103

一、邊雙連通分量定義

在分量內的任意兩個點總可以找到兩條邊不相同的路徑互相到達。總而言之就是乙個圈,正著走反著走都可以相互到達,至少只有乙個點。

二、點雙連通分量的定義

參照上面,唯一的不同:任意兩個點可以找到乙個點不同的路徑互相到達。也是乙個圈,正反走都可以,至少為乙個點。

三、邊、點雙連通分量模板**要注意的地方

邊雙連通分量:

1.每個節點的所有兒子遍歷後才開始計算分量大小,請與點雙連通相區分;

2.割頂只能屬於乙個分量,請與割邊區分;(容易搞混)

3.要注意j是否是i的父節點;

點雙連通分量:

1.每遍歷乙個兒子就計算是否有點連通分量;

2.割頂可以屬於多個連通分量,請注意與割邊區分;

3.當i為根節點時,至少要有兩個兒子才能是割點;

一、定義

有向圖上的環,不囉嗦,與上面兩種類似,至少為乙個點;

二、模板**注意的地方

1.每個點所有兒子遍歷完才開始求分量;(類似邊雙連通分量)

2.每個點只能屬於乙個分量;

1.給出的圖是非連通圖,如:

a.有一些點,一些邊,加最少的邊,要使得整個圖變成雙聯通圖。

大致方法:求出所有分量,把每個分量看成乙個點,統計每個點的度,有乙個度為一則cnt加1,答案為(cnt+1)/2;

b.有一些點,一些邊,問最少多少個點單著。

大致方法:求出所有的分量即可,但要注意不同的題可能有特殊要求(如圓桌騎士要求奇圈,要用到二分圖判定)

c.各種變式問題

2.給出的圖是連通圖,如:

a.給定乙個起點乙個終點,求各種問題是否能實現。

大致方法:求出所有分量,並把每個分量當成點,於是問題得到化簡;

b.給乙個圖,然後有大量的離線回答。

大致方法:求出所有分量,再求出上下子樹的資訊;

c.各種變式問題;

1.給出的是非連通圖,如:

a.有一些點,一些有向邊,求至少加多少邊使任意兩個點可相互到達

大致方法:求出所有的分量,縮點,分別求出出度入度為0的點的數量,取多的為答案;

b.有一些點,一些有向邊,求在這個圖上走一條路最多可以經過多少個點

大致方法:求出所有的分量,縮點,形成乙個或多個dag圖,然後做dag上的dp

c.有一些點,一些有向邊,給出一些特殊點,求終點是特殊點的最長的一條路

大致方法:求出所有分量,並標記哪些分量有特殊點,然後也是dag的dp

2.給出的是連通圖,比較少,有也比較簡單

總結:1.遇到非連通圖幾乎可以肯定是要求連通分量,不論是無向還是有向圖;(可以節約大量思考時間)

2.凡是對邊、點的操作,在同乙個分量內任意乙個點效果相同的,幾乎都是縮點解決問題;再粗暴點,幾乎求了連通分量都要縮點;

3.一定要考慮特殊情況,如整個圖是乙個連通分量等(考慮到了就有10-20分);

4.對於雙連通分量要分析是邊還是點雙連通分量;通過題目來判斷;

5.拿到題目要先搞清楚給的是連通圖還是非連通圖。

雙連通分量

在無向連通圖中,如果刪除該圖的任何乙個結點都不能改變該圖的連通性,則稱該圖是雙連通的。雙連通無向圖一定是連通的,而連通的無向圖則不一定是雙連通的。對於乙個連通的無向圖也有雙連通分量的概念,定義自然不言而喻。同樣,我們也可以利用tarjan演算法求雙連通分量。define n 10000 struct...

雙連通分量

在乙個無向連通圖中,如果任意去掉乙個定點i及依附於i的所有邊後得到的圖仍然連通,則稱該圖為 2 連通圖 否則,若得到多個連通分量,則該圖不是雙連通的,頂點i被稱為 割點 簡單的說,在雙連通圖中,任何一對頂點都至少存在兩條路徑可以互相到達。圖的連通 性不會任何乙個頂點的影響。這個性質具有許多重要的應用...

雙連通分量

雙連通分量就是無向圖中的強連通分量,基本就是找割頂和橋。割頂就是乙個點,如果把它取掉,連通分量數量就會增加,橋就是一條邊,同理。對於乙個連通圖,如果任意兩點至少存在兩條 點不重複 的路徑,也就是任意兩條邊都在乙個簡單環中,即內部無割頂,則說這個圖是點雙連通的。對於乙個連通圖,如果任意兩點至少存在兩條...