#CSES1666. 修建道路

    ID: 228 传统题 1000ms 256MiB 尝试: 0 已通过: 0 难度: 3 上传者: 标签>数据结构并查集CSES图论连通分量入门

修建道路

题目描述

Byteland 有 nn 个城市,和 mm 条道路连接它们。目标是建设新的道路,使得任意两个城市之间都可以通过道路相连。

你的任务是找出需要建设的最小数量的道路,并确定应该修建哪些道路。

输入格式

第一行包含两个整数 nnmm,分别表示城市的数量和现有道路的数量。城市编号为 1,2,,n1, 2, \ldots, n

接下来的 mm 行,每行包含两个整数 aabb,表示城市 aa 和城市 bb 之间有一条道路。

每条道路始终连接两个不同的城市,且每两个城市之间至多有一条道路。

输出格式

首先输出一个整数 kk,表示需要修建的道路数量。

然后输出 kk 行,每行描述一条新修建的道路。你可以输出任意一个有效的解决方案。

样例

4 2
1 2
3 4
1
2 3

数据范围

1n1051 \le n \le 10^51m2×1051 \le m \le 2 \times 10^51a,bn1 \le a, b \le n