CF1618B Missing Bigram

题目描述

Polycarp 想出了一个新游戏,叫做“缺失的二元组”。 一个单词的二元组是指该单词中相邻的两个字母组成的序列。 例如,单词 "abbaaba" 包含的二元组有 "ab"、"bb"、"ba"、"aa"、"ab" 和 "ba"。 游戏规则如下:首先,Polycarp 想出一个只包含小写字母 'a' 和 'b' 的单词。然后,他按顺序将该单词的所有二元组写在白板上。接着,他擦掉其中的一个二元组。 最后,Polycarp 邀请你来猜他原本想出的单词是什么。 你的目标是,找出任意一个单词,使得可以写出它的所有二元组,并移除其中一个二元组后,剩下的二元组序列与 Polycarp 最终留下的序列完全一致。 测试数据保证答案一定存在。如果有多个答案,你可以输出任意一个。

输入格式

第一行包含一个整数 $t$($1 \le t \le 2000$),表示测试用例的数量。 每个测试用例的第一行包含一个整数 $n$($3 \le n \le 100$),表示 Polycarp 想出的单词的长度。 每个测试用例的第二行包含 $n-2$ 个该单词的二元组,二元组之间用一个空格分隔。每个二元组由两个字母组成,每个字母都是 'a' 或 'b'。 输入有额外保证:至少存在一个字符串,可以写出它的所有二元组,并移除其中一个二元组后,剩下的序列与输入序列一致。换句话说,答案一定存在。

输出格式

对于每个测试用例,输出一个由 $n$ 个字母组成的单词,每个字母都是 'a' 或 'b'。要求能够写出它的所有二元组,并移除其中一个二元组后,剩下的二元组序列与 Polycarp 最终留下的序列完全一致。 测试数据保证答案一定存在。如果有多个答案,你可以输出任意一个。

说明/提示

示例中的前两个测试用例来源于单词 "abbaaba"。如题目所述,它包含的二元组为 "ab"、"bb"、"ba"、"aa"、"ab" 和 "ba"。 在第一个测试用例中,第 $5$ 个二元组被移除了。 在第二个测试用例中,第 $2$ 个二元组被移除了。不过,该序列也可以由单词 "abaabaa" 得到。它包含的二元组为 "ab"、"ba"、"aa"、"ab"、"ba" 和 "aa"。缺失的是第 $6$ 个二元组。 在第三个测试用例中,"baa"、"aab" 和 "aaa" 都是有效答案。 由 ChatGPT 4.1 翻译