【CF1841C 题解】

发布时间 2023-06-17 10:45:24作者: hcywoi

首先,我们把 \(s\) 翻转。

考虑 dp,\(f_{i, j, k}\) 表示到了第 \(i\) 个字符,操作了 \(j\) 个字符,最大的字符为 \(k\) 的最大值。

转移时枚举 \(i-1\) 的最大字符 \(\ell(0\le\ell<5)\)

  • 不操作第 \(i\) 个字符;

    • \(f_{i, j, k}=\max\{f_{i-1, j, \ell} + w\}\)
  • 操作第 \(i\) 个字符。

    • 我们稍加思考,可以发现一定是操作成字符 \(k\)

    证明:
    如果 \(k>\ell\),只有将第 \(i\) 个字符操作成 \(k\),才能满足定义中的条件。
    如果 \(k=\ell\),将其变成 \(<\ell\),则权值为负,肯定不优。

    • \(f_{i, j, k}=\max\{f_{i-1,j-1,\ell}+w\}\)

代码。