#L0141. 无向图边双连通分量划分

无向图边双连通分量划分

题目描述

小 Q 在维护一座城市的道路网络:路口是节点,道路是连接路口的边。他关心网络的冗余度——如果某条道路一旦封闭,就会有一些路口之间不再互通,这样的道路就是网络中的「关键通道」。

把这张网络抽象成一张 nn 个节点、mm 条边的无向图。删去所有关键通道(桥)之后,图中每个连通块所包含的点集称为一个边双连通分量。等价地说,同一边双连通分量中的任意两个节点之间,都存在两条没有公共边的路径。

请输出这张图边双连通分量的个数,以及每个边双连通分量分别包含哪些节点。

输入格式

第一行两个整数 nnmm,表示节点数和边数。

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

不保证图为简单图,图中可能有重边和自环。

输出格式

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

接下来输出 xx 行:每行先输出一个整数 aa,表示该分量包含的节点个数,随后输出 aa 个整数,依次列出该分量中的节点编号。

你可以以任意顺序输出各个边双连通分量,同一分量内的节点也可以按任意顺序输出。

样例

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

5 1 5 4 2 3

</p>
5 3
1 2
2 3
1 3
3

3 1 3 2 1 4 1 5

</p>
6 5
1 3
2 4
1 2
4 6
2 3
4

3 1 2 3 1 4 1 5 1 6

</p>
7 8
1 3
2 4
3 5
2 5
6 4
2 5
6 3
2 7
3

1 1 5 2 5 3 6 4 1 7

</p>

提示

对于 100%100\% 的数据,1n5×1051 \le n \le 5 \times 10^{5}1m2×1061 \le m \le 2 \times 10^{6}

本题答案不唯一,评测使用 Special Judge 校验输出是否合法。

难度 普及+/提高-
通过率 100%
尝试 1
已通过 1
ID
869
类型
传统题
Time Limit
4000ms
Memory Limit
512MiB
上传者