[CCO2021] Bread First Search
题目描述
这个国家有 $n$ 个城市和 $m$ 条双向道路。
有一个人要游览这个国家,但他很讲究。他要求游览线路必须是一个 BFS(Bread First Search,面包优先搜索)序,必须访问每个城市各一次,且满足以下条件:
- 首个城市可以任选;
- 除了首个城市外,每个城市被访问前至少有一个相邻城市已经被访问过;
- 每个城市与首个城市的距离单调不降。其中两个城市的距离定义为它们路径边数的最小值。
这个人还有强迫症,一定要按照编号 $1 \sim n$ 的顺序将每个城市访问一次。为了使这条游览线路符合上述所有要求,政府需要新修若干条道路。请问最少需要新修多少条道路?
输入输出格式
输入格式
第一行,两个整数 $n, m$;
接下来 $m$ 行,每行两个整数 $a, b$,表示这个国家的一条双向道路。
输出格式
一行,一个整数,表示所求的值。
输入输出样例
输入样例 #1
2 0
输出样例 #1
1
输入样例 #2
6 3
1 3
2 6
4 5
输出样例 #2
2
说明
#### 样例 #2 解释
一种符合要求的方式是,在城市 $1, 2$ 之间修一条路,在城市 $1, 4$ 之间修一条路。此时城市 $1$ 与城市 $1 \sim 6$ 的距离分别是 $0, 1, 1, 1, 2, 2$。
#### 数据范围
对于 $\frac{11}{32}$ 的数据,$1 \leq n \leq 200$;
对于 $\frac{5}{8}$ 的数据,$1 \leq n \leq 5 \times 10^3$;
对于 $100\%$ 的数据,$1 \leq n \leq 2 \times 10^5$,$0 \leq m \leq \min(2 \times 10^5, \frac{n(n - 1)}{2})$,$1 \leq a, b \leq n$,**保证没有重边和自环**。
#### 题目来源
[CCO2021](https://cemc.math.uwaterloo.ca/contests/computing/2021/index.html) D2T2