Luogu7599 [APIO2021] 雨林跳跃
题意:给出一个长度为
当玩家在位置
是 左侧第一个大于 的。 是 右侧第一个大于 的。
记
每次询问给出
先用单调栈求出每个位置的两条出边。
- 求单个
途中的权值必然单调增加,若到达
若
每一步只有两种决策,若目的地
若两种决策都可选,则贪心地选择更大的一个。
证明:对于
左右两侧的目的地 ,它们的后继都不可能经过区间 ,于是可以缩成一个点考虑。 命题等价于,在同一个位置
,将 在不超过 的前提下尽量增大,是否更优。答案是肯定的。
观察我们的决策,先会不断选择两侧更大的一个,然后会不断向右跳。
用倍增加速求解即可。
时
若
于是也可以将
可以 ST 表加二分求解出最长合法后缀,再取出其中的最大值。
时
有解的条件是
仍然用上一部分的方法确定
讨论结束的最后一步
若
若
若
复杂度