#6833. 探险地图
探险地图
探险地图
题目描述
小明参加了一场探险比赛。
比赛地图由许多 探险站点 组成,一共有 n 个站点,编号为 1 ~ n。
有些站点之间存在一条双向道路,如果两个站点之间有道路,那么探险者可以在这两个站点之间来回通行。
例如:
- 站点
1和2之间有道路; - 站点
2和3之间有道路;
那么从站点 1 出发,可以经过 2 到达 3。
比赛地图中可能存在多个互相无法到达的区域。
如果一组站点满足:
- 组内任意两个站点之间都可以通过若干条道路相互到达;
- 不能再加入其他站点使条件继续成立;
那么这组站点称为一个 独立探险区域。
现在请你帮助小明统计:
- 地图中一共有多少个独立探险区域;
- 每个区域包含哪些站点编号。
输入格式
第一行包含两个整数:
n m
表示:
n个探险站点;m条双向道路。
接下来 m 行,每行两个整数:
u v
表示站点 u 和站点 v 之间存在一条道路。
注意:
- 道路是双向的;
- 两个站点之间最多只有一条道路;
- 可能存在没有道路的孤立站点。
输出格式
第一行输出一个整数:
k
表示地图中独立探险区域的数量。
接下来输出 k 行:
每行表示一个区域中的站点编号。
要求:
- 每个区域内的编号按照从小到大输出;
- 区域输出顺序按照区域中最小编号从小到大排列。
数据范围
1 ≤ n ≤ 1000
0 ≤ m ≤ n(n-1)/2
1 ≤ u,v ≤ n
样例输入
6 4
1 2
2 3
4 5
6 6
样例输出
3
1 2 3
4 5
6
样例解释
地图如下:
1 —— 2 —— 3
4 —— 5
6
可以发现:
- 站点
1、2、3可以互相到达,属于同一个区域; - 站点
4、5可以互相到达,属于同一个区域; - 站点
6没有连接其他站点,单独形成一个区域。
因此共有:
3 个独立探险区域
相关
在以下作业中: