CF1550F 题解
题意
数轴上顺次有 个点 。
有一只小青蛙,初始时在 处。小青蛙有两个参数:步长 和灵活程度 。其中,步长 是确定的,而灵活程度 是可以调整的。
小青蛙可以从某个点跳到另一个点。但这是有要求的:小青蛙能从 跳到 ,当且仅当 。
给定 和 。你需要回答 次询问,每次询问给定一个灵活程度 和一个下标 ,你需要回答:此时的小青蛙能否跳到 ?
,,,。
题解
借这题学习了整体二分。记一下。
发现答案有单调性,我们只需要对每个点求出能到达它的最小 ,就能 回答。
对值域整体二分,设当前值域区间为 ,考虑所有答案在 的点。我们只需要将这些点分为 与 的两部分,递归解决即可。并由单调性,等价于根据 时的可达与否分组。
此时答案在 的点已经存在,利用他们更新 时能跳到的点。
待考虑的点有两种方式更新:1. 由 的一步跳到;2. 由第一种点跳到。第一种用 set 即可;第二种可以用队列和 set(类似广搜)。这样的方式可以保证 的复杂度。
本文作者:realFish
本文链接:https://www.cnblogs.com/fish07/p/16943353.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步