#P1014. demon的荒岛求生
demon的荒岛求生
背景
demon 正在玩一个生存游戏,现在他被困在了一片群岛海域。
于是 demon 想把所有岛屿连通起来以便建立贸易网络,但……似乎他现在并没有多少启动资金。
描述
地图上有 个岛屿,其中已经有 条双向航线在岛屿间穿梭。
为了节约开支,请问他 最少还需要开辟多少条新航线 ,才能从任意一个岛到达任意另一个岛?
形式化的,给定 个节点(岛屿)和 条无向边(已有航线)。求至少还需要添加多少条边,才能使整张图连通。
输入格式
第一行两个整数 ,表示节点数和已有边数。
接下来 行,每行两个整数 ,表示节点 和 之间有一条无向边。
输出格式
一行一个整数,表示最少还需添加的边数。
样例
5 3
1 2
2 3
4 5
1
样例解释:节点 1-2-3 构成一个连通分量,4-5 构成另一个。连接它们只需 1 条边(如 3-4)。
4 0
3
限制
,,。
提示:统计图中的连通分量个数 ,答案即为 。使用并查集(DSU)可实现近乎线性的时间复杂度。