AT_abc230_d.[ABC230D] Destroyer Takahashi
普及/提高-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
在一个被划分为 N 行 109 列格子的城市中,有 N 面墙,每面墙都被分配了从 1 到 N 的编号。
第 i 面墙位于第 i 行,从左起第 Li 列到第 Ri 列的范围内。(也请参考输入输出样例 1 的图示。)
高桥君决定要摧毁所有 N 面墙。
拥有超人力量的高桥君可以用一次拳击同时对连续的 D 列造成伤害。
- 更严格地说,可以选择一个 1 到 109−D+1 之间的整数 x,对第 x 列到第 x+D−1 列范围内(只要有一部分在该范围内)的所有尚未被摧毁的墙造成拳击伤害。
只要墙的任意部分受到伤害,整面墙就会因拳击的冲击波而被彻底摧毁。
(也请参考输入输出样例 1 的说明。)
请问高桥君至少需要多少次拳击才能摧毁所有的墙?
输入格式
输入以如下格式从标准输入读入。
N D
L1 R1
L2 R2
⋮
LN RN
输出格式
输出摧毁所有墙所需的最少拳击次数。
输入输出样例
输入#1
3 3 1 2 4 7 5 9
输出#1
2
输入#2
3 3 1 2 4 7 4 9
输出#2
1
输入#3
5 2 1 100 1 1000000000 101 1000 9982 44353 1000000000 1000000000
输出#3
3
说明/提示
限制条件
- 1≤N≤2×105
- 1≤D≤109
- 1≤Li≤Ri≤109
- 所有输入均为整数。
样例解释 1
下图展示了与输入样例 1 对应的墙的分布。

例如,可以如下方式进行拳击,仅用 2 次拳击摧毁所有的墙。(下述说明中,a 列到 b 列的范围记作 [a,b]。)
- 首先,对 [2,4] 进行拳击。位于 [2,4] 的墙 1 和墙 2 受到伤害,被摧毁。
- 然后对 [5,7] 进行拳击。位于 [5,7] 的墙 3 受到伤害,被摧毁。
另外,也可以如下方式用 2 次拳击摧毁所有墙:
- 首先对 [7,9] 进行拳击,摧毁墙 2 和墙 3。
- 然后对 [1,3] 进行拳击,摧毁墙 1。
样例解释 2
与输入输出样例 1 相比,墙 3 的范围从 [5,9] 变成了 [4,9]。
在这种情况下,只需对 [2,4] 进行一次拳击即可摧毁所有的墙。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?