AT_abl_c Connect Cities
题目描述
有 $N$ 个城市(编号从 $1$ 到 $N$)和 $M$ 条双向道路(编号从 $1$ 到 $M$)。第 $i$ 条道路连接城市 $A_i$ 和城市 $B_i$。
すぬけ君可以进行如下操作任意多次(包括 $0$ 次):
- 选择两个尚未直接通过道路相连的不同城市,在它们之间修建一条道路。
操作结束后,必须保证任意一对城市之间都可以通过若干条道路(可以重复经过道路)到达。
为了实现这一目标,最少需要修建多少条道路?
输入格式
输入以如下格式从标准输入读入。
> $N$ $M$
> $A_1$ $B_1$
> $A_2$ $B_2$
> $\vdots$
> $A_M$ $B_M$
输出格式
请输出答案。
说明/提示
## 限制条件
- $2 \leq N \leq 100,\!000$
- $1 \leq M \leq 100,\!000$
- $1 \leq A_i < B_i \leq N$
- 任意两条道路不会连接同一对城市。
- 所有输入均为整数。
## 样例解释 1
最初有三个城市,城市 $1$ 和城市 $2$ 之间有一条道路。すぬけ君可以在城市 $1$ 和城市 $3$ 之间修建一条道路来实现目标。修建道路后:
- 可以直接从城市 $1$ 到城市 $2$。
- 可以直接从城市 $1$ 到城市 $3$。
- 可以通过两条道路从城市 $2$ 到城市 $3$($2$-$1$-$3$)。
由 ChatGPT 4.1 翻译