#1306. 1001 循环位移

1001 循环位移

题面_2024“钉耙编程”中国大学生算法设计超级联赛(1)-题目集.pdf

定义字符串 S=S0++Sn1S=S_0+\dots+S_{n-1} 循环位移 kk 次为

$S(k) = S_{k\mod n}+\dots + S_{n-1} + S_0 + \dots + S_{(k-1) \mod n}$。

定义 [A]={A(k),kN}[A] = \set{A(k), k \in \mathbb N}.

给出 TT 组串 A,BA, B,询问 BB 有多少个子串在 [A][A] 中。

Input

第一行一个 TT 表示输入组数。

接下来每行两个字符串,表示 AABB,保证 AB|A| \leq |B|

保证 B1048576.\sum |B| \leq 1048576.,并且字符串均由大写字母组成。

Output

输出 TT 行,每行一个数表示答案。

3
AN MANTLEFAN
MVP XPTIJMVPMVP
CJMR JDRCJMRAJMRCJMGC
2
4
5

第一个样例:MANTLEFAN,MANTLEFAN

第三个样例:JDRCJMRAJMRCJMGC,JDRCJMRAJMRCJMGC,JDRCJMRAJMRCJMGC,JDRCJMRAJMRCJMGC,JDRCJMRAJMRCJMGC