#CF1721E. 前缀函数查询
前缀函数查询
前缀函数查询
- 时间限制:2 秒
- 内存限制:256 MiB
题目描述
给定一个由小写拉丁字母组成的字符串 。
你将会收到 个关于它的询问:对于每个给定的由小写拉丁字母组成的字符串 ,请执行以下操作:
- 将 和 连接起来;
- 计算连接后字符串 的前缀函数;
- 输出前缀函数在位置 上的值( 和 分别表示字符串 和 的长度);
- 将字符串还原为 。
字符串 的前缀函数是一个序列 ,其中 表示最大的 ,使得 且 ( 表示字符串 从第 个字符到第 个字符的连续子串,包含两端)。换句话说,就是 的最长真前缀,且该前缀等于其后缀。
输入格式
第一行包含一个非空字符串 (),由小写拉丁字母组成。
第二行包含一个整数 (),表示询问的数量。
接下来的 行,每行包含一个非空字符串 (),由小写拉丁字母组成。
输出格式
对于每个询问,输出字符串 的前缀函数在位置 上的值。
样例输入 1
aba
6
caba
aba
bababa
aaaa
b
forces
样例输出 1
0 1 2 3
1 2 3
2 3 4 5 6 7
1 1 1 1
2
0 0 0 0 0 0
样例输入 2
aacba
4
aaca
cbbb
aab
ccaca
样例输出 2
2 2 3 1
0 0 0 0
2 2 0
0 0 1 0 1
数据范围
| 子任务编号 | 分值 | 特殊限制 |
|---|---|---|
| 1 | 20 | , |
| 2 | 40 | , |
| 3 | 无特殊限制 |