#DS0902. 修路

修路

题目描述

nn 个城市,编号从 1 到 nn。现在已经修好了 mm 条道路,一条道路可以连接第 xx 个和第 yy 个城市。

现在询问最少再修几条道路,可以使得所有城市都连通(可以通过道路从任意一个城市到另一个城市)。

输入格式

第一行两个整数 n,mn,m,代表城市数量和已修道路数。

接下来 mm 行,每行有两个整数 x,y(xy)x,y(x≠y),表示一条从 xx 城市到 yy 城市的路。

输出格式

输出一个数表示答案。

5 4
1 2
2 3
1 3
4 5
1

数据规模

对于所有数据,保证 1n,m100000,1x,ynxy1≤n,m≤100000, 1≤x,y≤n,x≠y

提示

本题数据较大,可能导致很深的递归深度,后台已经设置较大的栈空间。但也请自行尝试创建进程,开设足够大的栈空间。