#L3311. 「ZJOI2020」字符串

    ID: 4101 传统题 1000ms 256MiB 尝试: 1 已通过: 1 难度: 10 上传者: 标签>数据结构树状数组树结构树哈希扫描线后缀数组

「ZJOI2020」字符串

#3311. 「ZJOI2020」字符串

题目描述

Bob 喜欢字符串。

Bob 觉得,重复两遍的字符串是优美的,例如,aaseseabcabcbaabaaabababab 是优美的串,而 abaadeadseseseabba 不是。更具体地说,如果一个字符串 SS 能够被写成两个相同的字符串前后拼接的形式,即存在字符串 PP 使得 S=PPS = PP,那么 SS 就是优美的。

Bob 有一个长度为 nn 的字符串 T=T1T2TnT = T_1 T_2 \cdots T_n。现在他想知道,给定 TT 的一个子串 Q=T[lr]Q = T[l \dots r],这个子串 QQ 内一共包含多少种本质不同的优美的串作为子串。如果两个串相同,但是出现的位置不同,那么这两个串不是本质不同。

Bob 一共有 qq 组不同的询问,你需要快速计算出答案。


输入格式

第一行输入两个整数 n,qn, q。第二行输入一个只包含小写字母 ab 的字符串 TT

接下来 qq 行,每行输入两个整数 l,rl, r,表示一组询问。


输出格式

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


样例

输入

11 5
aabaabaaaab
1 11
1 6
7 10
5 5
3 8

输出

5
2
2
0
2

TTaaaaaaabaabaaabaabbaabaa 这些本质不同的优美的串。


数据范围与提示

  • 对于前 10%10\% 的数据,n100n \le 100
  • 对于前 20%20\% 的数据,n500n \le 500
  • 对于前 40%40\% 的数据,n5000n \le 5000
  • 对于另外 20%20\% 的数据,保证 TT 中所有的优美的串的个数不超过 10610^6,这里位置不同的串被视为不同的
  • 对于另外 20%20\% 的数据,q=1q = 1
  • 对于 100%100\% 的数据,1n,q2×105,1lrn1 \le n, q \le 2 \times 10^5, 1 \le l \le r \le nTT 只包含小写字母 ab