割点集合
在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。(一般是有多个顶点组成)
割边集合
在一个无向连通图中,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为割边集合。(一般有多个边组成)
点连通度
一个图的点连通度的定义为,最小割点集合中的顶点数
边连通度
一个图的边连通度的定义为,最小割边集合中的边数。
双连通图
如果一个无向连通图的点/边连通度大于1,则称该图是点/边双连通的(biconnected),简称双连通或重连通
割点
一个图有割点,当且仅当这个图的点连通度为1,则割点集合的唯一元素被称为割点(cut point),又叫关节点(articulation point)。
桥
一个图有桥,当且仅当这个图的边连通度为1,则割边集合的唯一元素被称为桥(bridge),又叫关节边(articulation edge)。(也有人称为割边….)
割点:依次删除每一个顶点,然后用深度优先搜索或者广度优先搜索来检查图是否依然连通。如果删除某个顶点后,导致图不再连通,那么刚才删除的顶点就是割点。
import java.util.Scanner;
//对一个图进行深度优先遍历将会得到这个图的一个生成树(并不一定是最小生成树)
public class gedian {
static int n,m,root;
static int [][] e = new int[9][9];
static int [] num = new int[9];
static int [] low = new int[9];
static int [] flag = new int[9];
static int index;//index用来进行时间戳的递增
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int x,y;
n = scan.nextInt();
m = scan.nextInt();
for (int i = 1; i <= n; i++) {
for (int j = 1