#aBC328C. [ABC328C] Consecutive

[ABC328C] Consecutive

AT_abc328_c [ABC328C] Consecutive

题目描述

给定一个只由小写英文字母组成、长度为 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 的第 lil_i 个字符到第 rir_i 个字符组成的子串 SliSli+1SriS_{l_i}S_{l_i+1}\ldots S_{r_i} 中,相同的小写英文字母相邻出现的次数是多少?也就是说,满足 lipri1l_i \leq p \leq r_i-1Sp=Sp+1S_p = S_{p+1} 的整数 pp 有多少个?

请输出每个询问的答案。

输入格式

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

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 个询问的答案。

输入输出样例 #1

输入 #1

11 4
mississippi
3 9
4 10
4 6
7 7

输出 #1

2
2
0
0

输入输出样例 #2

输入 #2

5 1
aaaaa
1 5

输出 #2

4

说明/提示

限制条件

  • N,QN, Q 为整数。
  • 1N,Q3×1051 \leq N, Q \leq 3 \times 10^5
  • SS 是只由小写英文字母组成的长度为 NN 的字符串。
  • li,ril_i, r_i 为整数。
  • 1liriN1 \leq l_i \leq r_i \leq N

样例解释 1

对于 44 个询问的答案如下:

  • 对于第 11 个询问,S3S4S9=S_3S_4\ldots S_9 = ssissip,其中相同小写英文字母相邻出现的位置有 S3S4=S_3S_4 = ssS6S7=S_6S_7 = ss,共 22 个。
  • 对于第 22 个询问,S4S5S10=S_4S_5\ldots S_{10} = sissipp,其中相同小写英文字母相邻出现的位置有 S6S7=S_6S_7 = ssS9S10=S_9S_{10} = pp,共 22 个。
  • 对于第 33 个询问,S4S5S6=S_4S_5S_6 = sis,没有相同小写英文字母相邻出现,答案为 00
  • 对于第 44 个询问,S7=S_7 = s,没有相同小写英文字母相邻出现,答案为 00

样例解释 2

S1S2S5=S_1S_2\ldots S_5 = aaaaa,其中相同小写英文字母相邻出现的位置有 S1S2=S_1S_2 = aaS2S3=S_2S_3 = aaS3S4=S_3S_4 = aaS4S5=S_4S_5 = aa,共 44 个。

由 ChatGPT 4.1 翻译