#P16871. [GKS 2022 #A] Palindrome Free Strings
[GKS 2022 #A] Palindrome Free Strings
题目描述
给定一个由字符 0、1 和 ? 组成的字符串 。你可以将每个 ? 替换为 0 或 1。你的任务是判断是否可能为每个 ? 赋值为 0 或 1,使得最终得到的字符串中不包含长度大于等于 的回文子串。
输入格式
输入的第一行给出测试用例的数量 。接下来有 个测试用例。
每个测试用例由两行组成。
每个测试用例的第一行包含一个整数 ,表示字符串 的长度。
每个测试用例的第二行包含一个长度为 的字符串 。
输出格式
对于每个测试用例,输出一行,格式为 Case #x: y,其中 是测试用例编号(从 开始), 为 POSSIBLE(如果存在一种赋值方式使得最终字符串没有长度大于等于 的回文子串),否则为 IMPOSSIBLE。
2
9
100???001
5
100??
Case #1: IMPOSSIBLE
Case #2: POSSIBLE
提示
在样例 #1 中,为了防止整个字符串成为回文,第一个和最后一个问号必须替换为不同的字符。
如果将第一个问号替换为 ,最后一个问号替换为 ,得到 。如果剩下的 ? 替换为 ,得到 ,此时前 个字符构成一个长度为 的回文。否则,得到 ,前 个字符构成一个长度为 的回文。
如果将第一个问号替换为 ,得到 。如果剩下的 ? 替换为 ,得到 ,此时后 个字符构成一个长度为 的回文。否则,得到 ,后 个字符构成一个长度为 的回文。
因此,无法得到合法字符串。
在样例 #2 中,一种将所有 ? 替换后得到的合法字符串是 。
限制条件
。
仅由字符 0、1 和 ? 组成。
测试集 1
。
测试集 2
。
翻译由 DeepSeek V4 Pro 完成