Loading

[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}\) 运算会影响数学性质
导致我性质搞错了, 并且也没有检查出来(悲)

posted @ 2024-10-10 20:00  Yorg  阅读(59)  评论(0)    收藏  举报