信息
- ID
- 1587
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
令 st,i 表示前 t 次操作对第 i 项累计增加的数值。
任意时刻保持 Ai<Ai+1 等价于初始时满足 Ai+(st,i−st,i+1)<Ai+1。因此对每个相邻位置,只需令 ci=maxt(st,i−st,i+1),其中初始时刻保证 ci≥0;所有约束合并为 Ai+1≥Ai+ci+1。
最小方案显然取 A1=1,随后令每个不等式取等。处理一次对位置 p 的加法时,差值 p 增加 x,差值 p−1 减少 x,只需更新这两个差值及其历史最大值。最后从左到右构造最小 A 并累加。
时间复杂度为 O(N+Q),空间复杂度为 O(N),答案使用 64 位整数。