#P9164. 双边连通分量(Two-Edge-Connected Components)

双边连通分量(Two-Edge-Connected Components)

双边连通分量(Two-Edge-Connected Components)

问题描述

给定一个含 N N 个顶点、M M 条边的无向图(可能含重边),请将其分解为双边连通分量(2-edge-connected components),即:
极大子图,使得任意两点间存在至少两条边不相交的路径(等价于:删除任意一条边后子图仍连通)。

约束条件

  • 1N2×105 1 \leq N \leq 2 \times 10^5
  • 1M2×105 1 \leq M \leq 2 \times 10^5
  • 0ai,bi<N 0 \leq a_i, b_i < N

输入格式

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

输出格式

KK
l0 v0,0 v0,1  v0,l01l_0\ v_{0,0}\ v_{0,1}\ \dots\ v_{0,l_0-1}
l1 v1,0 v1,1  v1,l11l_1\ v_{1,0}\ v_{1,1}\ \dots\ v_{1,l_1-1}
:
lK1 vK1,0  vK1,lK11l_{K-1}\ v_{K-1,0}\ \dots\ v_{K-1,l_{K-1}-1}

其中:

  • K K 为双边连通分量的数量;
  • 每行第一个数 l l 是该分量的顶点数;
  • 后续 l l 个数是该分量中的顶点编号(顺序任意);
  • 若存在多解,输出任意一种即可。
4 5
0 2
0 1
3 0
2 1
2 3
1
4 0 2 1 3
13 21
4 5
8 7
12 3
3 10
1 5
10 2
0 0
11 4
2 12
9 1
9 0
7 8
7 6
9 1
8 2
12 10
11 0
8 6
3 2
5 9
4 11
3
6 0 9 1 5 4 11
4 2 10 3 12
3 6 7 8
2 2
0 1
1 0
1
2 0 1