信息
- ID
- 1515
- 时间
- 2000ms
- 内存
- 1024MiB
- 难度
- 10
- 标签
- 递交数
- 1
- 已通过
- 1
- 上传者
设在位置 i 执行了 ai 次操作,则必须满足 ai≥0 和 2ai−ai−1−ai+1=−Ai。
令 bi=ai+1−ai,上式化为 bi−bi−1=Ai。首先必须有 ∑Ai=0;在此前提下,先假定 b1=0 就能由前缀和求出所有 bi 相对于 b1 的值。又因为环上 ∑bi=0,可直接求出唯一的 b1;若不是整数,则无解。
得到整数差分 bi 后,令 a1=0 并递推出一组相对的 ai。方程的所有解只相差一个全局常数,为了使每个 ai≥0 且操作总数最小,应把整个序列上移到最小值恰好为 0。此时 ∑ai 就是答案。
整个过程的时间复杂度为 O(N),空间复杂度为 O(N)。