1. 程式人生 > >點雙連通分量與割點

點雙連通分量與割點

前言

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

雙連通分量一般是指點雙連通分量

當然,還有一種叫做邊雙連通分量

點雙連通分量

對於一個連通圖,如果任意兩點至少存在兩條“點不重複”的路徑,則說圖是點雙連通的(即任意兩條邊都在一個簡單環中),點雙連通的極大子圖稱為點雙連通分量。

計算方法比較簡單

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

注意在tarjan的過程中,我們可以選擇存邊,也可以存點,不過存點的話邊界條件要變一下

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

與二分圖的關係

(1) 如果一個點雙連通分量內的某些頂點在一個奇圈中(即雙連通分量含有奇圈),那麼這個雙連通分量的其他頂點也在某個奇圈中;

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

例題

題解

割點(割頂)

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

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

考慮之前求點雙的過程,找到一個點雙時,那個\(i\)

就是一個割點。

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

例題

題解

相關推薦

連通分量

前言 在圖論中,除了在有向圖中的強連通分量,在無向圖中還有一類雙連通分量 雙連通分量一般是指點雙連通分量 當然,還有一種叫做邊雙連通分量 點雙連通分量 對於一個連通圖,如果任意兩點至少存在兩條“點不重複”的路徑,則說圖是點雙連通的(即任意兩條邊都在一個簡單環中),點雙連通的極大子圖稱為點雙連通分量。 計算方法

poj 2942 Knights of the Round Table(連通分量+奇圈判定)

cst 一個 log ini ins cut insert bool ring 鏈接:https://vjudge.net/problem/POJ-2942 題意:給定一個無向圖,求出補圖,然後求補圖中有多少個點不屬於任何奇圈。 分析:首先是騎士有不能坐在一起的人,不好想

HDU 3749 Financial Crisis(-連通分量)

say multi one eno ins lead help nod color Because of the financial crisis, a large number of enterprises go bankrupt. In addition to this

[APIO2018]鐵人兩項(連通分量+DP)

oid nta .html pre scanf api pen top 滿足 題意:給出一張圖,求滿足存在一條從u到v的長度大於3的簡單路徑的有序點對(u,v)個數。 做了上一題[HDU5739]Fantasia(點雙連通分量+DP),這個題就是一個NOIP題了。 一開

關於最小生成樹,拓撲排序、強連通分量、2-SAT的一點筆記

時間戳 def 條件 問題 復習 lin 由於 保留 染色 關於最小生成樹,拓撲排序、強連通分量、割點、2-SAT的一點筆記 前言:近期在復習這些東西,就xjb寫一點吧。當然以前也寫過,但這次偏重不太一樣 MST 最小瓶頸路:u到v最大權值最小的路徑。在最小生成樹上。是次小

Tarjan求連通分量

space ima strong 入棧 img read 判斷 opened class 概述 在一個無向圖中,若任意兩點間至少存在兩條“點不重復”的路徑,則說這個圖是點雙連通的(簡稱雙連通,biconnected) 在一個無向圖中,點雙連通的極大子圖稱為點雙連通分量(簡稱

UOJ#30/Codeforces 487E Tourists 連通分量,Tarjan,圓方樹,樹鏈剖分,線段樹

con multi blank uil back 時間 雙連通分量 rdquo 簡潔 原文鏈接https://www.cnblogs.com/zhouzhendong/p/UOJ30.html 題目傳送門 - UOJ#30 題意   uoj寫的很簡潔、清晰,這裏就不抄

Tarjan相關(強連通分量,縮

一、先上模板QWQ #include<bits/stdc++.h>//tarjan-強連通分量 using namespace std; const int MAXM=100005; const int MAXN=5005; int n,m,tot,head[MAXN],dfn[MAXN],l

3331: [BeiJing2013]壓力 連通分量+樹上差分

題解: 點雙模板+樹上差分。 點雙求法:由於一個割點會屬於多個點雙,所以必須在Tarjan的時候,找到一個割點就把棧中的所有點加上這個點組成一個點雙連通分量。 說實話樹上差分我都不會了…… 樹上差分就是如果給 (x,y)

jzo5919 逛公園 連通分量

Description 琥珀色黃昏像糖在很美的遠方,思念跟影子在傍晚一起被拉長…… 小 B 帶著 GF 去逛公園,公園一共有 n 個景點,標號為 1 . . . n。景點之間有 m 條路徑相連。 小 B 想選擇編號在一段區間 [l, r] 內的景點來遊玩,但是

Tarjan之連通分量

傳送門 Prereading 這是自從暑假學了Tarjan的無向圖連通性後,第一次實幹 感覺有點感覺 Analysis 如果一個聯通塊中不含割點,那麼在這個聯通塊內就應該設定2個出口(萬一有一個被炸了

超詳細Tarjan演算法總結,求強連通分量邊,有重邊的

Tarjan是一個人,他一身中發明了很多演算法,就這幾個演算法最為出名。 1、求有向圖的強連通分量,那麼什麼是強連通分量呢,就是一個頂點集合,任意兩個頂點間都可以互相到達。一個頂點也是強聯通分量如果圖中任意兩點可以互相到達,則此圖強連通。下圖中頂點{1,0,2}屬於一個強聯

HDU 3749 Financial Crisis 連通分量

給一個無向圖, n <5000, m < 10000 然後給出若干的詢問(< 1000),問一個點到另一個點之間有多少條路可以走,只需回答有0條還是1條還是多條。注意這些路之間不能有邊相同。 方法: 求點的雙連通分量。 然後一個割點,有可能屬於多個點雙連

連通分量

它是什麼? 對於一個無向圖,如果它沒有割點,則稱其為“點雙聯通圖” 無向圖的極大點雙連通子圖成為“點雙連通分量” 它可以用來做什麼? 如果對無向圖中的所有點雙連通分量縮點,可以得到一顆樹,可以比較方便地將一些路徑問題轉化為樹上問題 怎麼求? 我們可以在\(Tarjan\)求割點時,順便把所有\(v

聯通分量

前言 在圖論中,除了在有向圖中的強連通分量,在無向圖中還有一類雙聯通分量 雙聯通分量一般是指點雙連通分量 當然,還有一種叫做邊雙連通分量 邊雙聯通分量 對於一個連通圖,如果任意兩點至少存在兩條“邊不重複”的路徑,則說圖是點雙連通的,邊雙連通的極大子圖稱為邊雙連通分量。 邊雙聯通分量的計算方法比較簡單 類比ta

(轉)Tarjan應用:求/橋/縮/強連通分量/連通分量/LCA(最近公共祖先)

應用 說明 lca ref father 無向圖 沒有 經理 遠的 本文轉載自:http://hi.baidu.com/lydrainbowcat/item/f8a5ac223e092b52c28d591c 作者提示:在閱讀本文之前,請確保您已經理解並掌握了基本的T

圖論算法-Tarjan模板 【縮頂;連通分量

else if false -m 例如 als for 算法思路 連通 tarjan 圖論算法-Tarjan模板 【縮點;割頂;雙連通分量】 為小夥伴們總結的Tarjan三大算法 Tarjan縮點(求強連通分量) int n; int low[100010],dfn[1

hihoCoder #1190 : 連通性·四(連通分量模板)

連接不上 限制 輸入 HR str style 技術 pro vector 時間限制:10000ms 單點時限:1000ms 內存限制:256MB 描述 小Hi和小Ho從約翰家回到學校時,網絡所的老師又找到了小Hi和小Ho。 老師告訴小Hi和小Ho

poj 1523 求無向圖所有以及刪除連通分量個數 給出詳細演算法思路

題意 無向圖找出每個割點,然後求出刪除這個割點所得的連通分量個數 節點編號在1-1000,但沒說按順序給出 思路 無向圖求所有割點是一類經典問題,這篇blog就以這題為例簡單介紹一下求解的演算法思路 我們希望在O(n+m)的時間裡求出所有的割

hihor學習日記:hiho一下 第五十五週 (連通分量

http://hihocoder.com/contest/hiho55/problem/1 與邊的雙聯通分量類似,這個是求的割點 虛擬碼: void dfs(int u) { //記錄dfs遍歷次序 static int counter = 0; //記錄節點u