QOJ.ac

QOJ

実行時間制限: 0.3 s メモリ制限: 32 MB 満点: 100

#319. 周期性

統計

Bitotia 的国王 Byteasar 下令改革他臣民的名字。Bitotians 的名字中经常包含重复的短语,例如名字 Abiabuabiab 中出现了两次 abiab。Byteasar 打算将他臣民的名字改为与原名长度相同的比特序列。此外,他非常希望在新的名字中反映出原有的重复规律。

为简单起见,我们将名字中的大小写字母视为相同。对于任何字符(字母或比特)序列 $w=w_{1}w_{2}\dots w_{k}$,如果对于所有 $i=1,\dots,k-p$ 都有 $w_{i}=w_{i+p}$,则称整数 $p$ ($1 \le p < k$) 为 $w$ 的一个周期。我们将 $w$ 的所有周期集合记为 $\text{Per}(w)$。例如,$\text{Per}(\texttt{ABIABUABIAB})=\{6,9\}$,$\text{Per}(\texttt{01001010010})=\{5,8,10\}$,以及 $\text{Per}(\texttt{0000})=\{1,2,3\}$。

Byteasar 决定将每个名字改为一个比特序列,该序列需满足:

  • 长度与原名相同,
  • 具有与原名相同的周期集合,
  • 是满足上述条件的所有比特序列中字典序最小的$^{1}$。

例如,名字 ABIABUABIAB 应改为 01001101001BABBAB 改为 010010BABURBAB 改为 01000010

Byteasar 请你编写一个程序,帮助将他臣民当前的名字转换为新的名字。如果你成功了,作为奖励,你可以保留你现在的名字!

$^{1}$:如果对于某个 $i$ ($1 \le i \le k$),有 $x_{i} < y_{i}$ 且对于所有 $j=1,\dots,i-1$ 都有 $x_{j}=y_{j}$,则称比特序列 $x_{1}x_{2}\dots x_{k}$ 在字典序上小于比特序列 $y_{1}y_{2}\dots y_{k}$。

输入格式

标准输入的第一行包含一个整数 $k$,表示需要转换的名字数量 ($1 \le k \le 20$)。接下来的每一行包含一个名字。每个名字由 $1$ 到 $200\,000$ 个大写英文字母组成。

在占总分 $30\%$ 的测试数据中,每个名字的长度不超过 $20$ 个字母。

输出格式

你的程序应向标准输出打印 $k$ 行。每一行应包含一个与输入名字对应的由 $0$ 和 $1$ 组成的序列(中间没有空格)。如果对于某些名字不存在合适的比特序列,则应为该名字打印 "XXX"(不含引号)。

样例

样例输入 1

3
ABIABUABIAB
BABBAB
BABURBAB

样例输出 1

01001101001
010010
01000010

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
#456EditorialOpen题解Itst2025-12-24 05:30:37View

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.