AT_agc021_d [AGC021D] Reversed LCS

题目描述

高桥君打算送给妈妈一个字符串作为礼物。 字符串 $T$ 的“价值”定义为:将 $T$ 反转得到 $T'$,$T$ 与 $T'$ 的最长公共子序列的长度。也就是说,作为子序列(不要求连续)同时出现在 $T$ 和 $T'$ 中的最长字符串的长度。 高桥君手中有一个字符串 $S$。他希望通过最多修改 $K$ 个字符,使得最终得到的字符串的“价值”尽可能大。 请你求出能够达到的最大“价值”。

输入格式

输入以如下格式从标准输入读入: > $S$ $K$

输出格式

输出能够达到的最大“价值”。

说明/提示

## 限制条件 - $1 \leq |S| \leq 300$ - $0 \leq K \leq |S|$ - $S$ 仅由小写英文字母组成 - $K$ 是整数 ## 样例解释 1 将第 $1$ 个字符修改为 `c` 后,字符串变为 `cbcabcabc`。此时,设该字符串为 $T$,则长度为 $7$ 的字符串 `cbabcbc` 是 $T$ 与 $T'$ 的最长公共子序列的一种。 由 ChatGPT 4.1 翻译