#P8435. 【模板】点双连通分量

【模板】点双连通分量

【模板】点双连通分量

题目描述

点双连通分量是一个极大的点双连通子图。点双连通图有两种常见定义,本题采用“不存在割点的图”这一种定义。

给定一个有 nn 个结点、mm 条无向边的图,请输出其点双连通分量的个数,并输出每个点双连通分量。

输入格式

第一行两个整数 n,mn,m

接下来 mm 行,每行两个整数 u,vu,v,表示一条无向边。图中可能出现重边和自环。

输出格式

第一行输出一个整数 xx,表示点双连通分量的个数。

接下来输出 xx 行。每行第一个整数 aa 表示该分量的结点个数,随后输出 aa 个互不相同的整数,描述该点双连通分量。

各点双连通分量的顺序任意,每个分量内结点的顺序也任意。

样例输入 1

5 8
1 3
2 4
4 3
1 2
4 5
5 1
2 4
1 1

样例输出 1

1
5 1 2 3 4 5

样例输入 2

5 3
1 2
2 3
1 3

样例输出 2

3
1 4
1 5
3 1 2 3

样例输入 3

6 5
1 3
2 4
1 2
4 6
2 3

样例输出 3

4
2 6 4
2 4 2
3 3 2 1
1 5

样例输入 4

7 8
1 3
2 4
3 5
2 5
6 4
2 5
6 3
2 7

样例输出 4

3
2 7 2
5 5 2 4 6 3
2 3 1

样例输入 5

1 1
1 1

样例输出 5

1
1 1

数据范围

对于所有数据,1n5×1051\le n\le 5\times 10^51m2×1061\le m\le 2\times 10^61u,vn1\le u,v\le n

请特别考虑孤立点与自环的情况。