AT_arc032_2 [ARC032B] 道路工事
题目描述
在大工的“チョーさん”的小镇上,道路建设正在进行中。チョーさん的小镇有 $N$ 个交叉路口和 $M$ 条道路,每条道路都是双向连接两个不同的交叉路口。不方便的是,从某个交叉路口出发,并不一定能通过道路到达其他交叉路口。
チョーさん的建筑公司希望修建一些连接不同交叉路口的新道路,使得从 $N$ 个任意一个交叉路口出发,都可以通过道路到达其他任意交叉路口。
请你回答,至少需要修建多少条新道路,才能使得从任意一个交叉路口出发,都可以通过道路到达其他任意交叉路口。如果已经可以从任意一个交叉路口出发到达其他所有交叉路口,则输出 $0$。
输入格式
输入将以以下格式从标准输入中给出。
> $N$ $M$
> $a_1$ $b_1$
> $a_2$ $b_2$
> $\vdots$
> $a_M$ $b_M$
- 第 $1$ 行包含两个整数 $N$(表示チョーさん小镇的交叉路口数量,$1 \leq N \leq 100,000$)和 $M$(表示已有道路的数量,$0 \leq M \leq 100,000$),以空格分隔。
- 接下来的 $M$ 行,每行包含两个整数 $a_i, b_i$($1 \leq a_i, b_i \leq N$),表示第 $i$ 条道路连接的两个交叉路口,以空格分隔。
- 不会有连接同一对交叉路口的多条道路。即对于任意 $i \neq j$,都有 $a_i \neq a_j$ 或 $b_i \neq b_j$。
输出格式
请在第 $1$ 行输出需要新建的最少道路数。
请不要忘记输出末尾的换行符。
说明/提示
### 样例解释 1
交叉路口 $1$、$2$、$3$ 彼此之间通过道路相连,但交叉路口 $4$ 没有与其他路口相连。例如,只需新建一条连接交叉路口 $1$ 和 $4$ 的道路即可满足要求。

由 ChatGPT 4.1 翻译