原题传送门:Jumping Through Segments - 洛谷
题目大意
数轴上有 n 条线段,第 i 条线段的范围是
开始时在原点,每次可以跳至多 k 的距离,但是在第 i 次跳跃后一定要站在第 i 条线段上。
求出最小的 k 使得你可以跳到第 n 条线段上。
思路
看到 “最小的” 三个字,有一些经验的朋友应该都能想到二分,
即二分答案(最小的k),判断k等于该值是是否能到第i条线段。
思路大家都能想得到,那怎么搜呢?
对于第i轮,我们维护其能够到达的最左边的点和最右边的点。例如:
图中我们已经求出了上一步所能达到的两端。
由于第i条线段要求在图中红点之间,所以到达第i条线段后的最左端应该是 ,即左侧红点位置。
同样的,如果出现这种情况: