#1177. 2.前缀数组

2.前缀数组

2.前缀数组

题目描述

numinum_i表示满足以下条件的字符串TT的数量:

对于字符串SS的前ii个字符构成的子串,TT既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠。

输出i=1L(num[i]+1)\prod_{i=1}^{L}(num[i]+1)109+710^9+7取模的结果。

输入格式

第一行仅包含一个正整数nn,表示测试数据的组数。

随后nn行,每行描述一组测试数据。

每组测试数据仅含有一个字符串SSSS的定义详见题目描述。数据保证SS中仅含小写字母。输入文件中不会包含多余的空行,行末不会存在多余的空格。

输出格式

包含nn行,每行描述一组测试数据的答案,答案的顺序应与输入数据的顺序保持一致。

对于每组测试数据,仅需要输出一个整数,表示这组测试数据的答案对109+710^9+7取模的结果。输出文件中不应包含多余的空行。

数据范围与提示

对于所有数据,n5n \leq 5L106L \leq 10^6

测试点编号 约定
1 n5n \leq 5L50L \leq 50
2 n5n \leq 5L200L \leq 200
3
4 n5n \leq 5L10000L \leq 10000
5
6 n5n \leq 5L100000L \leq 100000
7 n5n \leq 5L200000L \leq 200000
8 n5n \leq 5L500000L \leq 500000
9 n5n \leq 5L1000000L \leq 1000000
10

样例

3
aaaaa
ab
abcababc
36
1
32