欢迎来到起遇信息学
起遇信息学正处于上线筹建阶段,以下功能已全部开放免费体验: ✅ 完整题库浏览与代码提交评测(C / C++ / Python / Java 等) ✅ 入门到进阶的系列课程试读、作业与考试 ✅ AI 提示、AI 作业分析等智能助教功能 ✅ 赛事模拟与个人能力报告 ✅ 邮箱注册开放 ⏳ 付费课程订阅与微信/支付宝支付通道 ⏳ 手机号登录,微信扫码登录、微信公众号绑定 使用中如遇任何问题,欢迎通过页面底部 **"联系我们"** 与我们沟通。
CF1618B.Missing Bigram
Missing Bigram
题目描述
Polycarp 想出了一个新游戏,叫做“缺失的二元组”。
一个单词的二元组是指该单词中相邻的两个字母组成的序列。
例如,单词 "abbaaba" 包含的二元组有 "ab"、"bb"、"ba"、"aa"、"ab" 和 "ba"。
游戏规则如下:首先,Polycarp 想出一个只包含小写字母 'a' 和 'b' 的单词。然后,他按顺序将该单词的所有二元组写在白板上。接着,他擦掉其中的一个二元组。
最后,Polycarp 邀请你来猜他原本想出的单词是什么。
你的目标是,找出任意一个单词,使得可以写出它的所有二元组,并移除其中一个二元组后,剩下的二元组序列与 Polycarp 最终留下的序列完全一致。
测试数据保证答案一定存在。如果有多个答案,你可以输出任意一个。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含一个整数 (),表示 Polycarp 想出的单词的长度。
每个测试用例的第二行包含 个该单词的二元组,二元组之间用一个空格分隔。每个二元组由两个字母组成,每个字母都是 'a' 或 'b'。
输入有额外保证:至少存在一个字符串,可以写出它的所有二元组,并移除其中一个二元组后,剩下的序列与输入序列一致。换句话说,答案一定存在。
输出格式
对于每个测试用例,输出一个由 个字母组成的单词,每个字母都是 'a' 或 'b'。要求能够写出它的所有二元组,并移除其中一个二元组后,剩下的二元组序列与 Polycarp 最终留下的序列完全一致。
测试数据保证答案一定存在。如果有多个答案,你可以输出任意一个。
说明/提示
示例中的前两个测试用例来源于单词 "abbaaba"。如题目所述,它包含的二元组为 "ab"、"bb"、"ba"、"aa"、"ab" 和 "ba"。
在第一个测试用例中,第 个二元组被移除了。
在第二个测试用例中,第 个二元组被移除了。不过,该序列也可以由单词 "abaabaa" 得到。它包含的二元组为 "ab"、"ba"、"aa"、"ab"、"ba" 和 "aa"。缺失的是第 个二元组。
在第三个测试用例中,"baa"、"aab" 和 "aaa" 都是有效答案。
由 ChatGPT 4.1 翻译
样例
4
7
ab bb ba aa ba
7
ab ba aa ab ba
3
aa
5
bb ab bb
abbaaba
abaabaa
baa
bbabb
在线编程 IDE
建议全屏模式获得最佳体验
| 进入全屏编程 | Alt+E |
| 递交评测 | Ctrl+Enter |
| 注释/取消注释 | Ctrl+/ |
| 缩放字体 | Ctrl+滚轮 |