#P10716. 【MX-X1-T4】「KDOI-05」简单的字符串问题

    ID: 10131 Type: RemoteJudge 2000ms 512MiB Tried: 0 Accepted: 0 Difficulty: 6 Uploaded By: Tags>字符串倍增树上启发式合并O2优化KMP

【MX-X1-T4】「KDOI-05」简单的字符串问题

题目描述

你有一个字符串 SSqq 个询问,每次给出 (i,k)(i,k),求有多少个非空字符串 AA,使得存在可空字符串 B1,B2,,Bk1B_1,B_2,\dots,B_{k-1} 满足:

S[1,i]=AB1AB2AABk1AS[1,i]=AB_1AB_2A\dots AB_{k-1}A

其中 S[1,i]S[1,i] 表示 SS 的长度为 ii 的前缀。

输入格式

第一行一个正整数 nn 表示 SS 的长度。

接下来一个长度为 nn 且仅包含小写字母的字符串表示 SS

接下来一行一个正整数表示 qq

接下来 qq 行,每行两个正整数表示一个询问的 i,ki,k

输出格式

输出 qq 行,每行一个非负整数表示答案。

10
aabaacaaaa
5
5 3
5 2
6 1
10 4
10 5
1
2
1
2
1
10
bababababa
10
6 1
6 2
6 3
6 4
6 5
10 2
10 3
9 4
5 5
4 2
1
1
1
0
0
2
1
1
0
1

提示

【样例解释 #1】

对于第一次询问 (5,3)(5,3),可以取 A=aA=\texttt{a}B1=εB_1=\varepsilonB2=baB_2=\texttt{ba},其中 ε\varepsilon 表示空串。可以证明有且仅有一个合法的 AA

【数据范围】

本题采用捆绑测试。

子任务编号 分值 n,qn,q\leq 特殊性质
11 55 500500
22 1010 50005000
33 2×1052\times10^5 SS 中字符从 a,b\tt a,b 中随机生成
44 2020 每个询问的 kk 相同
55 5×1045\times10^4
66 3535 2×1052\times10^5

对于 100%100\% 的数据:1kin2×1051\leq k\leq i\leq n\leq 2\times 10^51q2×1051\leq q\leq 2\times 10^5ss 仅包含小写字母。