AT_jsc2021_e.Level K Palindrome
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
高桥君为了表达对すぬけ君的感谢,决定送给他一个等级为 K 的回文。等级为 L 的回文(L 是大于等于 0 的整数)定义如下:
- 记字符串 s 的左右反转为 rev(s)。
- 当字符串 s 满足 s=rev(s) 时,称 s 为回文。
- 空字符串和非回文字符串被定义为等级 0 的回文。
- 对于任意非空的等级 L−1 的回文 t,将 t 和 rev(t) 按顺序连接得到的字符串是等级 L 的回文。
- 对于任意等级 L−1 的回文 t 和任意字符 c,将 t、c、rev(t) 按顺序连接得到的字符串是等级 L 的回文。
现在,高桥君有一个字符串 S。
你可以多次(包括 0 次)选择 S 中的一个字符,将其改写为另一个小写英文字母。请判断是否可以通过若干次操作将 S 变为恰好等级 K 的回文。如果可以,请输出最少需要的改写次数;如果不可以,请输出 impossible。
输入格式
输入以如下格式从标准输入读入。
K S
输出格式
如果可以构造出恰好等级 K 的回文,输出所需的最小改写次数。
如果无法构造,输出 impossible。
输入输出样例
输入#1
4 aabaaaabaa
输出#1
0
输入#2
2 aabaaaabaa
输出#2
4
输入#3
3 aabaaaabaa
输出#3
impossible
输入#4
5 aabaaaabaa
输出#4
impossible
输入#5
2 acaabcbababaaac
输出#5
6
说明/提示
限制条件
- K 是整数
- 0≤K≤5×105
- S 由小写英文字母组成
- 1≤∣S∣≤5×105
样例解释 1
aabaaaabaa 的等级计算如下:
- 空字符串是等级 0 的回文。
a是(空字符串)、a、(空字符串)顺序连接而成,因此是等级 1 的回文。aa是a、a顺序连接而成,因此是等级 2 的回文。aabaa是aa、b、aa顺序连接而成,因此是等级 3 的回文。aabaaaabaa是aabaa、aabaa顺序连接而成,因此是等级 4 的回文。
因此,aabaaaabaa本身就是等级 4 的回文,不需要任何改写。
样例解释 2
例如,将 aabaaaabaa 改写为 acbcaacbca,可以得到恰好等级 2 的回文。注意,aabaaaabaa 并不是等级 2 的回文。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?