题解:AT_agc040_e [AGC040E] Prefix Suffix Addition
posted on 2025-02-19 12:26:41 | under | source
操作顺序无影响,不妨拆为 \(a_i=p_i+q_i\),\(p,q\) 分别用两种操作完成。
\(0\to A\) 等价 \(A\to 0\)。\(p,q\) 是对称的,这里先考虑 \(p\)。容易发现一个上界:极长非下降段的个数,只需每次消掉一段即可。又可以发现这是下界,因为一次操作至多消掉一个极长段。
易得 dp,记 \(f_{i,j}\) 为考虑前 \(i\) 个,\(q_i=j\) 时最小代价,转移:
\[f_{i,j}\gets \min(f_{i-1,k}+[k<j]+[a_{i-1}-k>a_i-j])
\]
难以用数据结构维护,考虑一些性质。可以发现,当前继决策 \((i-1,k)\) 固定,\(j\) 越大,\(f\) 不降。这是因为后面两个式子肯定是 \(j\) 越大越容易满足。
同时,\((i-1,k)\) 得到的 \(f\) 的极差不超过 \(2\)。容易归纳证明 \(f_i\) 的极差不超过 \(2\)。
那就好做了,维护三个连续段表示 \(f_i\) 构成的分段函数。转移只需考虑每个连续段结尾,原因同上 \(k\) 越小这两个式子越容易满足。可以二分 \(O(n\log n)\) 也可以分讨 \(O(n)\)。

浙公网安备 33010602011771号