@[华山抡剑](/user/152213) 感谢您的贡献
by Anguei @ 2022-11-14 19:21:31
@[Anguei](/user/53062) 感谢您的贡献/se
by Querainy @ 2022-11-14 19:41:06
qyc/se/se
by Deuteron @ 2022-11-14 20:47:02
qyc/se/se
by do_while_true @ 2022-11-14 21:06:12
qyc/se/se
by zsseg @ 2022-11-14 21:31:36
@[Anguei](/user/53062) 翻译有误,请修改为
## 题面翻译
有若干个字符,对于每一个,用一个 $01$ 串编码它。所有的 $01$ 串由一棵完全的 trie (每个点有两个儿子)给出(具体方式见输入格式),保证有且仅有每个叶子对应一个字符。定义一个串 $s$ 编码的结果是其中各个字符的编码按顺序接起来,记为 $\mathrm{encode}(s)$。
定义对一个 $01$ 串进行解码的过程是,每次找到一个前缀,满足它对应一个字符,容易知道这样的前缀是唯一的。将这个字符加入答案,将这个前缀从原串中删掉,如果不存在这样的前缀,则解码的结果是未定义。记 $s$ 解码的结果是 $\mathrm{decode}(s)$。
设一个字符编码为 $a$,定义它是好的,当且仅当对于任意两个串 $s,t$,对于 $\mathrm{encode}(s)$ 的任意后缀 $p$,有 $\mathrm{decode}(p+a)$ 不是未定义,且 $\mathrm{decode}(p+a+\mathrm{encode}(t))=\mathrm{decode}(p+a)+t$。求哪些字符是好的。
## 输入格式
第一行一个数 $n$,表示操作次数。接下来一行一个长 $n$ 的字符串,其中 `0`/`1` 表示在当前结点添加一个儿子,边权为 `0`/`1`,并移动过去;`B`表示添加一个父亲;`X`表示当前结点是一个字符的编码。保证输入是描述这棵 trie 的最短的可能输入。$n\leq 3\times 10^6$ ,所有字符编码的总长 $\leq 10^8$ 。
## 输出格式
一行一个数,表示好的字符的数量。
接下来若干行,从小到大输出每个好的字符是第几个`X`生成的。
by Querainy @ 2022-11-16 09:35:25