考虑倍增。维护每个点跳 2i2^i2i 次后的目标值、沿途经过坐标的最小最大值,这样即可 O(logn)O(\log n)O(logn) 的回答跳 kkk 次是否合法。
二分最大的合法跳跃次数即可。如果超过 nnn,则说明可以永远跳跃。复杂度 O(nlogn+mlog2n)O(n \log n + m \log^2 n)O(nlogn+mlog2n),或者在二分时判断合法,复杂度 O(nlogn+mlogn)O(n \log n + m \log n)O(nlogn+mlogn)。
这里是代码
注册一个 Hydro 通用账户,您就可以在我们提供的所有在线评测服务上提交代码、参与讨论。
使用您的 Hydro 通用账户