[ROIR 2022 Day 1] 跳跃机器人
思路
一眼发现, 假设从 \(k\) 开始的数组
其答案为
\[\max^{i = 1}_n{(d_i - i + 1)}
\]
于是循环一遍, 记录当前的前缀与后缀, 假设现在循环到 \(i\)
容易发现对于 \([1, i)\) , 其答案为
\[\max^{j = 1}_{i - 1}{(d_j)} + i
\]
对于 \((i, n]\), 其答案为
\[\max^{j = i + 1}_{n}{(d_j)} + i
\]
考虑初始灵敏度 \(v\), 到达第 \(i\) 个位置时灵敏度为 \(v + i - 1\)
考虑起始点为 \(p\) 时, 答案为
\[\max_{i = p}^{n} d_i - (i - p) + \max_{i = 1}^{p - 1} d_i - (n - p + i)
\]
似乎都可以随手维护一下即可
代码
略
总结
事实上 \(\rm{mod}\) 运算会影响数学性质
导致我性质搞错了, 并且也没有检查出来(悲)

浙公网安备 33010602011771号