luogu#P16444. [XJTUPC 2026] Used to be
[XJTUPC 2026] Used to be
题目描述
"Who am I...?"
这是一个关于记忆的故事。故事的主角之一,是一个长为 的 01 串。
故事的第一层,是变化。
故事穿行于 个节点间。每经过一个节点,主角都会受到微妙的影响:它可能保持不变,抑或在某一位上发生翻转。这些变化不断累积,最终的串也许和最初判若两人。
故事的第二层,是遗忘。
曾经,剧本上记录着主角最初的状态,以及经过每个节点后的状态。然而,随着岁月的流逝,书页上一些位置的字迹渐渐模糊,化作无法辨认的 ?。
故事的第三层,是追寻。
另一群主角------你们,找到了这份尘封的记录。尽管你们可能无法确定唯一的真相,你们仍然希望拼凑出一份可能的原貌,复现你们心中的故事。
"Make her story complete."
"I know... you will not disappoint me."
形式化题意
给定 个长度恰为 的字符串 。字符串 仅包含字符 , 和 。
判断是否存在一种将每一个 分别替换为 或 的方案,使得相邻两个字符串不同的位置至多有一位。即在替换后,对于任意的 (),第 个字符串 和第 个字符串 满足下面条件的任意一个:
- 对于任意的 (),有 ;
- 存在一个 (),使得 且对于任意的 ( 且 ),有 。
若存在,请输出一种满足要求的方案。如果存在多种方案,输出任意一种即可。
输入格式
本题包含多组测试用例。输入的第一行,包含一个正整数 (),表示测试用例的数量。
接下来是 组测试用例的描述。
每个测试用例的第一行,包含两个正整数 和 (),用一个空格分隔,分别表示字符串的数量与字符串的长度。
接下来 行,第 行包含一个长度恰为 的字符串 。保证字符串 仅包含字符 , 和 。
保证所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,如果不存在满足要求的方案,输出一行,仅包含一个字符串 。
否则,输出 行,其中:
- 第一行包含一个字符串 ;
- 接下来 行,第 行包含一个长度恰为 的字符串,字符串中仅包含字符 和 ,表示构造的方案中第 个字符串。
如果存在多种满足要求的方案,输出任意一种即可。
答案对大小写不敏感。例如 ,, 和 都会被视为 。
3
2 3
000
010
3 3
010
1?1
010
3 4
00?1
01?1
1?01
Yes
000
010
No
Yes
0001
0101
1101