#P14648. [POI 2025/2026 #1] 浏览器 / Przeglądarka internetowa
[POI 2025/2026 #1] 浏览器 / Przeglądarka internetowa
题目描述
Bajtosia 正在为信息学课程准备一个演示文稿。为此,她必须访问 个具有两两不同地址的网站,从中获取所需的信息。
Bajtosia 使用的浏览器有一个文本框,初始时包含空串。通过按键可以修改文本框中的内容,并访问地址等于当前文本框中单词的网站。可用的操作如下:
- 按键 到 会在当前单词的末尾追加按下的字母。
- 按键 删除当前单词的最后一个字母(如果当前单词为空串则什么也不做)。
- 按键 会访问地址等于当前单词的网站,然后清空文本框中的单词(即将其变为空串)。
- 按键 会将当前单词自动补全为在所有已经访问过的、以当前单词为前缀(即开头片段)的页面中最近一次访问的那一个页面的地址(如果不存在这样的已访问页面,则什么也不做)。
离提交演示文稿的截止时间已经不多了,因此 Bajtosia 想以尽可能少的按键次数访问所有要求访问的网站。Bajtosia 不能访问除要求访问的网站以外的其他网站。Bajtosia 可以以任意顺序访问这些要求访问的网站,并且每个网站必须被访问恰好一次。
请帮助 Bajtosia,求出所需的最小按键次数,以及应该依次按下哪些按键。
输入格式
输入的第一行包含一个整数 (),表示 Bajtosia 需要访问的网站数量。
在接下来的第 行(对于 )中,给出一个非空字符串 ,由英文小写字母()组成,表示第 个网站的地址。字符串 两两不同。
记 ,则有 。
输出格式
输出的第一行应输出一个整数 ,表示访问所有给定网站所需的最小按键次数。
输出的第二行应包含一个长度为 的按键序列,即为依次按下的按键,从而能够访问所有给定的网站。按键 BACKSPACE、ENTER 和 TAB 分别用字母 B、E 和 T 来表示。
如果存在多个可行解,可以输出其中任意一个。
3
aaaaba
aaaaczzz
aaaadb
21
aaaabaETBBdBETBBczzzE
提示
样例解释
一开始,Bajtosia 逐个字母地在文本框中输入字符串 ,然后按下 。接着她按下 ,此时文本框中又出现了字符串 。然后 Bajtosia 连续两次按下 ,得到 ,再追加两个字母,得到 ,之后按下 。接下来,她按下 ,再按两次 ,再次得到 。最后 Bajtosia 再输入四个字母得到 ,并最后一次按下 。
整个过程也在“样例图解”一节的示意图中给出。
大样例
可以在附件中获得大样例。
样例 是题面中展示的样例。此外:
- : 个字符串,每个由 个字符组成。每个字符串的前 个字符都是字母
a,而它们的最后一个字符依次为英文小写字母a、b、...、z。 - : 个字符串,第 个字符串(对于 )由字母
'a'重复 次组成。 - : 个字符串。输入中包含所有由字母
'a'和'b'组成、长度不超过 的非空字符串。 - : 个字符串。两个字符串的长度都是 ,并且在前 个位置上的字母完全相同。在第 个位置上的字符二者不同。之后的字符是随机的。
子任务
本题采用捆绑测试。
| 子任务编号 | 限制 | 得分 |
|---|---|---|
| 1 | 且对所有 均有 | 17 |
| 2 | 所有 的长度相同 | 12 |
| 3 | 32 | |
| 4 | 只由字母 a 和 b 构成 |
18 |
| 5 | 无额外限制 | 21 |
如果你的输出中只有第一行是正确的,你的解法在该测试上将得到该测试分值的 。你不必输出第二行也能获得这些分数。
样例图解
在下面的示意图中,给出了上文所述示例测试的一种解法的各个步骤。
::::align{center}
::::