#P3526. [POI 2011] OKR-Periodicity
[POI 2011] OKR-Periodicity
Description
比托蒂亚的国王 Byteasar 下令对他的臣民的名字进行改革。
比托蒂亚人的名字通常包含重复的短语,例如,名字 Abiabuabiab 包含两次出现的短语 abiab。Byteasar 打算将他的臣民的名字改为与原名长度相匹配的 01 串。
此外,他非常希望在新名字中反映原始的周期。
对于任何字符序列(字母或 01 串),我们说整数 是 的周期,如果 对于所有 都成立。
我们用 表示 的所有周期的集合。
例如,$Per(\texttt{ABIABUABIAB})=\{6,9\},Per(\texttt{01001010010})=\{5,8,10\},Per(\texttt{0000})=\{1,2,3\}$。
Byteasar 决定将每个名字串 改为一个 01 串 ,该串是满足 且 条件的字典序最小的 01 串。
例如,名字 ABIABUABIAB 应该改为 01001101001,BABBAB 改为 010010,BABURBAB 改为 01000010。
Byteasar 要求你编写一个程序,帮助将他的臣民的当前名字翻译成新名字。
如果你成功了,你可以作为奖励保留你现在的名字!
Input Format
第一行一个整数 表示需要翻译的名字数量 ()。
名字在接下来的行中给出,每行一个。
每个名字由不多于 个英文大写字母组成。
在 的数据中,每个名字最多由 个字母组成。
Output Format
你的程序应该向标准输出打印 行。
每个连续的行应包含与输入中给出的名字对应的零和一的序列(中间没有空格)。
如果某些名字不存在合适的比特序列,则应为该名字打印 "XXX"(不带引号)。
3
ABIABUABIAB
BABBAB
BABURBAB
01001101001
010010
01000010
Hint
对于 的数据,,单个名字长度不超过 。
京公网安备 11011102002149号