一个显然的性质。一个串 \(S\) 与 \(S^R\) 的最长子序列长度就是 \(S\) 的最长回文子序列长度。
那么现在只用求变了不超过 \(k\) 次的最长回文子序列长度。
一看到回文子序列和这个数据范围,肯定要优先想区间 dp。因为回文子序列只用在两边加就行了。
设 $ f_{l,r,i} $ 表示区间 \([l, r]\) 中,变了不超过 $ i $ 次的最长回文子序列。回文子序列因为只用在两边加,所以只会从 \([l + 1, r], [l, r - 1], [l, r]\) 转移过来。现在只用讨论让不让 $ l $ 和 $ r $ 配对。
\[f_{l,r,i} = \max(f_{l+1,r,i}, f_{l,r-1,i}, f_{l+1,r-1,i}, f_{l+1,r-1,i} - |s_l \neq s_r| + 2)
\]
时间复杂度 $ O(n^3) $。