【模板】点双连通分量
题目描述
对于一个 $n$ 个节点 $m$ 条无向边的图,请输出其点双连通分量的个数,并且输出每个点双连通分量。
输入输出格式
输入格式
第一行,两个整数 $n$ 和 $m$。
接下来 $m$ 行,每行两个整数 $u, v$,表示一条无向边。
输出格式
第一行一个整数 $x$ 表示点双连通分量的个数。
接下来的 $x$ 行,每行第一个数 $a$ 表示该分量结点个数,然后 $a$ 个数,描述一个点双连通分量。
你可以以任意顺序输出点双连通分量与点双连通分量内的结点。
输入输出样例
输入样例 #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
说明
**样例四解释:**
![](https://cdn.luogu.com.cn/upload/image_hosting/huvwgbuo.png)
相同颜色的点为同一个分量里的结点。
**温馨提示:请认真考虑孤立点与自环(样例五)的情况。**
------------
**数据范围:**
对于 $100\%$ 的数据,$1 \le n \le 5 \times10 ^5$,$1 \le m \le 2 \times 10^6$。
| subtask | $n$ | $m$ | 分值 |
| :----------: | :----------: | :----------: | :----------: |
| $1$ | $1 \le n \le 100$ | $1 \le m \le 500$ | $25$ |
| $2$ | $1 \le n \le 5000$ | $1 \le m \le 5 \times 10^4$ | $25$ |
| $3$ | $1 \le n \le 2\times 10^5$ | $1 \le m \le 5\times 10^5$ | $25$ |
| $4$ | $1 \le n \le 5 \times10 ^5$ | $1 \le m \le 2 \times 10^6$ | $25$ |
本题不卡常,时间限制与空间限制均已开大,正确的解法均可通过。
------------
### 数据更新
- $2022/7/14$ 加强数据
- $2022/11/26$ 新增 $10$ 组较小的数据($1\le n, m \le 10$),方便选手调试。
- $2022/12/31$ 重组 $subtask$,并加入若干组极端数据。
- $2023/1/1$ 发现昨天新加入的数据出了问题,已修改。
------------
惊喜:AC 后记得把鼠标放到测试点上看反馈信息,有惊喜哦。