Tarjan求割点和割边
强连通分量:
若图 G G G 中的点两两可达,则称图 G G G 为强连通。
强连通分量的定义:极大的强连通子图。
割点:
在一个无向连通图图中,删掉顶点 u u u 及其相连的边以后,这个图不连通,点 u u u 为此图割点。
重连通图:
1.一个不含割点的连通图称为重联通图。
2.对于重联通的无向图来说,每对顶点至少存在两条路径。
3.在网络通信中,图中不应该有割点。
求割点:
1.暴力判断图连通性, O ( n ( n + e ) ) O(n(n+e)) O(n(n+e)) 。
2.用Tarjan寻找割点时间复杂度为 O ( n + e ) O(n+e) O(n+e) 。
Tarjan:
首先 d f s dfs dfs 寻找一颗无向连通图 d f s dfs dfs 遍历后形成的深度优先生成树。
在深度优先生成树中的某个顶点 u u u 要么是根,要么不是根:
1.若顶点 u u u 为生成树的根:
1.1充要条件: u u u 是割点的充要条件: u u u 有两颗或以上的子树。
1.2判定:以 u u u 相连其中一个顶点 d f s dfs dfs 遍历,若能遍历完,则 u u u 不为割点
2.若顶点 u u u 不为根节点:
2.1充要条件:设 v v v 为