1520.循环位移

时间限制:2s 内存限制:256MB

定义字符串 $S=S_0+\dots+S_{n−1}$ 循环位移 $k$ 次为 $S(k)=S_{k\ mod\ n} + \dots +S_{n−1}+S_0+ \dots +S_{(k−1)\ mod \ n}$。

定义 $[A]=\{ A(k),k∈ℕ\}$.

给出 $T$ 组串 $A,B$,询问 $B$ 有多少个子串在 $[A]$ 中。

输入格式(从终端/标准输入读取)

第一行一个 $T$ 表示输入组数。

接下来每行两个字符串,表示 $A$ 和 $B$,保证 $|A|≤|B|$。

保证 $∑|B|≤1048576$.,并且字符串均由大写字母组成。

输出格式(输出至终端/标准输出)

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

输入样例

复制
3
AN MANTLEFAN
MVP XPTIJMVPMVP
CJMR JDRCJMRAJMRCJMGC
 \n
  ·         \n
   ·           \n
    ·                \n

输出样例

复制
2
4
5
 \n
 \n
 \n

说明

第一个样例:MANTLEFAN,MANTLEFAN

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

来源: 2024“钉耙编程”中国大学生算法设计超级联赛(1)

提交题解

Please login first.

© 2025 FAQs