测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A5429. 岛屿战争

编程题 普及-
知识点

题目描述

有 $N$ 个岛屿按东西方向一字排开,岛屿之间有 $N-1$ 座桥。

第 $i$ 座桥连接着从西往东数第 $i$ 个岛和第 $i+1$ 个岛。

某天,岛屿之间发生了争端,岛民们提出了 $M$ 个请求。

第 $i$ 个请求:由于从西往东数第 $a_i$ 个岛和第 $b_i$ 个岛之间发生了争端,希望让这两个岛无法通过桥相互往来。

你可以通过拆除一些桥来满足所有 $M$ 个请求。

请你求出最少需要拆除多少座桥,才能满足所有请求。

输入格式

$N$ $M$
$a_1$ $b_1$
$a_2$ $b_2$
$\vdots$
$a_M$ $b_M$

输出格式

输出需要拆除的最少桥的数量。

输入输出样例

输入 #1
5 2
1 4
2 5
输出 #1
1
输入 #2
9 5
1 8
2 7
3 5
4 6
7 9
输出 #2
2
输入 #3
5 10
1 2
1 3
1 4
1 5
2 3
2 4
2 5
3 4
3 5
4 5
输出 #3
4

说明/提示

### 限制条件

- 所有输入均为整数。
- $2 \leq N \leq 10^5$
- $1 \leq M \leq 10^5$
- $1 \leq a_i < b_i \leq N$
- 每组 $(a_i, b_i)$ 均互不相同。

### 样例解释 1

只需拆除连接从西往东数第 $2$ 个岛和第 $3$ 个岛的桥即可满足所有请求。
上一题 去做题 下一题