#ABC328C. 连续字符

连续字符

连续字符

题目描述

给定一个长度为 NN、由小写英文字母组成的字符串 S=S1S2SNS = S_1S_2\ldots S_N

此外,给出 QQ 个关于字符串 SS 的查询。对于 i=1,2,,Qi = 1, 2, \ldots, Q,第 ii 个查询由两个整数 li,ril_i, r_i 表示,询问以下内容:

SS 的子串 SliSli+1SriS_{l_i}S_{l_i+1}\ldots S_{r_i}(即从第 lil_i 个字符到第 rir_i 个字符)中,有多少处相同的字符连续出现两次? 换句话说,有多少个整数 pp 满足 lipri1l_i \le p \le r_i-1Sp=Sp+1S_p = S_{p+1}

对于每个查询,输出答案。

输入格式

输入按以下格式从标准输入给出:

NN QQ
SS
l1l_1 r1r_1
l2l_2 r2r_2
\vdots
lQl_Q rQr_Q

输出格式

输出 QQ 行。对于 i=1,2,,Qi = 1, 2, \ldots, Q,第 ii 行输出第 ii 个查询的答案。

样例

11 4
mississippi
3 9
4 10
4 6
7 7
2
2
0
0

四个查询的答案如下。

对于第 1 个查询,S3S4S9=S_3S_4\ldots S_9 = ssissip 中有两处相同的字符连续出现两次:S3S4=S_3S_4 = ss 和 S6S7=S_6S_7 = ss。

对于第 2 个查询,S4S5S10=S_4S_5\ldots S_{10} = sissipp 中有两处相同的字符连续出现两次:S6S7=S_6S_7 = ss 和 S9S10=S_9S_{10} = pp。

对于第 3 个查询,S4S5S6=S_4S_5S_6 = sis 中相同的字符连续出现两次的位置有零处。

对于第 4 个查询,S7=S_7 = s 中相同的字符连续出现两次的位置有零处。

5 1
aaaaa
1 5
4

S1S2S5=S_1S_2\ldots S_5 = aaaaa 中有四处相同的字符连续出现两次:S1S2=S_1S_2 = aa、S2S3=S_2S_3 = aa、S3S4=S_3S_4 = aa 和 S4S5=S_4S_5 = aa。

数据范围

  • NNQQ 均为整数。
  • 1N,Q3×1051 \le N, Q \le 3 \times 10^5
  • SS 是长度为 NN、由小写英文字母组成的字符串。
  • lil_irir_i 均为整数。
  • 1liriN1 \le l_i \le r_i \le N
难度 普及
通过率
尝试 0
已通过 0
ID
3118
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签