[ABC344G] Points and Comparison

题意

给定 \(n\) 个球,每个球有颜色 \(C_i\),价值 \(V_i\)

你需要删除恰好 \(k\) 个小球,使得剩余的小球没有相邻颜色相同且价值最大。

求这个价值。

\(k \le 500, n \le 2 \times 10 ^ 5\)

Sol

考虑一个平凡的 dp。

\(f_{i, j}\) 表示最后剩了 \(i\),当前留下了 \(j\) 个的最大价值。

\[f_{i, j} = \max_{p < i, C_p \neq C_i} f_{p, j - 1} + V_i \]

注意到对于每一个 \(j\) 来说,可以有贡献的 \(i\) 当前仅当满足:\(j \le i, i \le j + k\)。因此状态数为 \(nk\)

考虑加速转移,容易想到先枚举 \(j\),然后在转移的过程中更新 \(j - 1\) 对当前的答案。

记录 \(j - 1\) 的最大值、最大值的颜色、次大值即可。

posted @ 2024-03-22 16:51  cxqghzj  阅读(2)  评论(0编辑  收藏  举报