#P8436. 【模板】边双连通分量

【模板】边双连通分量

【模板】边双连通分量

  • 时间限制:2 秒
  • 内存限制:512 MiB

题目描述

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

输入格式

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

接下来 mm 行,每行包含两个整数 u,vu,v,表示一条连接顶点 uu 与顶点 vv 的无向边。

输入图不保证是简单图,可能含有重边和自环。

输出格式

第一行输出一个整数 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 5 4 2 3

样例输入 2

5 3
1 2
2 3
1 3

样例输出 2

3
3 1 3 2
1 4
1 5

样例输入 3

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

样例输出 3

4
3 1 2 3
1 4
1 5
1 6

样例输入 4

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

样例输出 4

3
1 1
5 2 5 3 6 4
1 7

数据范围

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

子任务编号 分值 特殊限制
1 20 n30n\le 30m60m\le 60
2 40 n700n\le 700m2000m\le 2000
3 无特殊限制

提示

在样例四对应的图中,相同颜色的顶点属于同一个边双连通分量。

样例四示意图