#P9166. 双连通分量(Biconnected Components)

双连通分量(Biconnected Components)

双连通分量(Biconnected Components)

问题描述

给定一个无向图,含 N N 个顶点和 M M 条边(无自环,但可能含重边)。
将其分解为双连通分量(biconnected components),即极大双连通子图(任意两点间存在两条点不相交路径)。

输出每个双连通分量的顶点集合。

约束条件

  • 1N5×105 1 \leq N \leq 5 \times 10^5
  • 0M5×105 0 \leq M \leq 5 \times 10^5
  • 0ai,bi<N 0 \leq a_i, b_i < N
  • aibi a_i \ne b_i

输入

N MN\ M
a0 b0a_0\ b_0
a1 b1a_1\ b_1
:
aM1 bM1a_{M-1}\ b_{M-1}

输出

第一行:K K (双连通分量数量)
接下来 K K 行:每行格式为

l v0 v1  vl1 l\ v_0\ v_1\ \cdots\ v_{l-1}
其中 l l 是该分量的顶点数,vi v_i 是顶点编号。
若存在多解,输出任意一种即可。

4 5
0 3
0 1
3 0
2 1
2 3
1
4 0 1 2 3
10 12
0 6
0 8
1 2
1 6
2 6
3 6
3 9
4 9
4 7
5 6
5 9
6 8
5
3 0 6 8
3 1 2 6
4 3 5 6 9
2 4 7
2 4 9
5 3
0 1
1 0
0 1
4
2 0 1
1 2
1 3
1 4