专栏文章

题解:CF637D Running with Obstacles

CF637D题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipow0l5
此快照首次捕获于
2025/12/03 15:32
3 个月前
此快照最后确认于
2025/12/03 15:32
3 个月前
查看原文

CF637D 题目传送门

题目大意

运动员在一条可以看作是数轴的跑道上跑步,从坐标为 xstart=0x_{start}=0 的起点开始,跑向坐标为 xfinish=mx_{finish}=m 的终点。跑道上设置了 nn 个障碍,放置的位置坐标分别为。运动员只能通过跳跃跨过这些障碍,每次跳跃,运动员首先需要进行一段不少于 ss 米的助跑,每次跳跃的距离不超过 dd 米。为了跨越某个障碍物,运动员必须严格地落在该障碍物右侧的第一个点上。你的任务是判断运动员是否能够到达终点。

解决方法

可以发现,跑道上有 nn 个障碍,运动员需要一定的助跑距离才能跳跃,所以只要让这个助跑距离最大,就更有机会跳过去,因此本题思路是贪心。很容易想到,每次在障碍的前一个单位跳跃,在障碍的后一个单位落下,可以使中间没有障碍的那一段助跑距离最大。当这样求出所有障碍之间的最大助跑距离后,仍有一些障碍之间的助跑距离不够,可以将这种障碍合在一起考虑。

注意事项

2m,s,d1092 \leq m,s,d \leq 10^9,需要开 long long

评论

0 条评论,欢迎与作者交流。

正在加载评论...