摘要:
题意:给定 $n,m$,序列 $\{a_i\}_{i=1}^n,\{b_i\}_{i=1}^{n-1}$,每次操作可令任意 $a_i$ 加 $1$,求最小操作次数,满足 $\forall i\in[1,n-1],\ a_i+a_{i+1}\equiv b_i\pmod{m}$。
思路:设 $c_i$ 为 $a_i$ 的累加次数,预处理 $d_i=(b_i-a_i-a_{i+1})\bmod m$,约束化为 $c_i+c_{i+1}\equiv d_i\pmod{m}$;令 $c_1=t$,递推得 $c_i=f_i+(-1)^{i+1}t$(模 $m$);总代价为所有 $c_i$ 最小非负取值之和,代价是关于 $t$ 的分段一次函数,仅 $O(n)$ 个临界点会改变斜率,收集临界点排序后枚举计算最小总代价,时间复杂度 $O(n\log n)$。 阅读全文
posted @ 2026-07-19 15:18
wing_heart
阅读(38)
评论(0)
推荐(0)

浙公网安备 33010602011771号