1 条题解
-
0
评分保护线 题解
思路
记前缀和为 。固定 后,在第一次达到 之前评分就是普通前缀和;保护生效后,每次跌破 都会被抬回 。
若第一次达到 的位置为 ,最终评分相对总和 的提升为
对固定的首次到达位置,提升随 增大,因此只需考虑某个前缀峰值 。最终要最大化“前缀值减去其后缀中的最小前缀和”。
做法
子任务 1:整数保护线穷举
在 时,最优行为一定能由 内的某个整数代表。枚举这些 并直接模拟全部比赛。
子任务 2:前缀候选模拟
最优保护线可取某个前缀和,另加一个“高于所有前缀、永不生效”的候选。枚举 个候选并各自模拟 次比赛。
子任务 3:最大回撤
从右向左维护 ,计算每个位置的 ,取差值最大的 作为 。这就是能由保护线弥补的最大后续回撤。
复杂度
三个层级的单组时间复杂度分别为 、 和 ;前两者空间复杂度为 ,满分算法也使用 前缀和空间。多组数据按 的总和计算。
正确性证明
引理 1 若 首次在位置 被达到,最终评分为 。
证明 保护生效前没有修正。生效后,所有低于 的最低偏移会被整体补回;所需总补偿正是 超过后续最低前缀和的部分。∎
引理 2 存在一个最优 等于某个前缀和 ,或高于所有前缀而从不生效。
证明 保持首次到达位置不变时,引理 1 中的目标关于 单调不减,因此可把 提高到该位置的前缀值。若始终未到达,则所有这类 都得到未经保护的总和。∎
定理 最大回撤算法输出的 最优。
证明 由引理 2 只需比较前缀候选。对候选 ,引理 1 给出的最大提升正是 的非负部分。算法枚举并最大化了全部这些差值,因此对应最终评分不小于任何其他 。∎
- 1
信息
- ID
- 1157
- 时间
- 2000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 0
- 上传者