AT_jsc2021_e.Level K Palindrome

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

高桥君为了表达对すぬけ君的感谢,决定送给他一个等级为 KK 的回文。等级为 LL 的回文(LL 是大于等于 00 的整数)定义如下:

  • 记字符串 ss 的左右反转为 rev(s)\mathrm{rev}(s)。
  • 当字符串 ss 满足 s=rev(s)s = \mathrm{rev}(s) 时,称 ss 为回文。
  • 空字符串和非回文字符串被定义为等级 00 的回文。
  • 对于任意非空的等级 L−1L-1 的回文 tt,将 tt 和 rev(t)\mathrm{rev}(t) 按顺序连接得到的字符串是等级 LL 的回文。
  • 对于任意等级 L−1L-1 的回文 tt 和任意字符 cc,将 tt、cc、rev(t)\mathrm{rev}(t) 按顺序连接得到的字符串是等级 LL 的回文。

现在,高桥君有一个字符串 SS。
你可以多次(包括 00 次)选择 SS 中的一个字符,将其改写为另一个小写英文字母。请判断是否可以通过若干次操作将 SS 变为恰好等级 KK 的回文。如果可以,请输出最少需要的改写次数;如果不可以,请输出 impossible。

输入格式

输入以如下格式从标准输入读入。

KK SS

输出格式

如果可以构造出恰好等级 KK 的回文,输出所需的最小改写次数。
如果无法构造,输出 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

说明/提示

限制条件

  • KK 是整数
  • 0≤K≤5×1050 \leq K \leq 5 \times 10^5
  • SS 由小写英文字母组成
  • 1≤∣S∣≤5×1051 \leq |S| \leq 5 \times 10^5

样例解释 1

aabaaaabaa 的等级计算如下:

  • 空字符串是等级 00 的回文。
  • a 是(空字符串)、a、(空字符串)顺序连接而成,因此是等级 11 的回文。
  • aa 是 a、a 顺序连接而成,因此是等级 22 的回文。
  • aabaa 是 aa、b、aa 顺序连接而成,因此是等级 33 的回文。
  • aabaaaabaa 是 aabaa、aabaa 顺序连接而成,因此是等级 44 的回文。
    因此,aabaaaabaa 本身就是等级 44 的回文,不需要任何改写。

样例解释 2

例如,将 aabaaaabaa 改写为 acbcaacbca,可以得到恰好等级 22 的回文。注意,aabaaaabaa 并不是等级 22 的回文。

由 ChatGPT 4.1 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页