1 条题解
-
0
严格递增改造 题解
思路
令 ,修改后的数组严格递增,等价于修改后的 非递减。目标变成最小化 ,其中 非递减。
最优 一定可以取自原数组 的某个值。将所有 排序去重为 ,即可在这些候选值上动态规划。
做法
子任务 1 枚举小值域内的所有严格递增目标数组并直接计算代价。
子任务 2 设 表示前 项且 的最小代价,直接枚举前一项候选 ,复杂度 。
满分算法维护前一行的前缀最小值:
这样每层只需线性扫描全部候选值。
正确性证明
减去下标把“严格递增”与“非递减”一一对应且不改变每项修改代价。对固定相邻候选区间,若某个 不等于任一输入 值,将其移动到最近端点不会破坏非递减性,也不会增大绝对值和,因此只需考虑候选集合。动态规划枚举了所有非递减候选序列,并对每个末值取最小代价,所以所得答案最优。
复杂度
满分算法时间复杂度 ,空间复杂度 。
- 1
信息
- ID
- 1480
- 时间
- 5000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者