AT_abc328_c [ABC328C] Consecutive
题目描述
给定一个只由小写英文字母组成、长度为 N 的字符串 S=S1S2…SN。
此外,还给定了 Q 个关于 S 的询问。对于 i=1,2,…,Q,第 i 个询问由两个整数 li,ri 表示,内容如下:
在 S 的第 li 个字符到第 ri 个字符组成的子串 SliSli+1…Sri 中,相同的小写英文字母相邻出现的次数是多少?也就是说,满足 li≤p≤ri−1 且 Sp=Sp+1 的整数 p 有多少个?
请输出每个询问的答案。
输入格式
输入按以下格式从标准输入中给出。
N Q
S
l1 r1
l2 r2
⋮
lQ rQ
输出格式
请输出 Q 行。对于 i=1,2,…,Q,第 i 行输出第 i 个询问的答案。
输入输出样例 #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,Q 为整数。
- 1≤N,Q≤3×105。
- S 是只由小写英文字母组成的长度为 N 的字符串。
- li,ri 为整数。
- 1≤li≤ri≤N。
样例解释 1
对于 4 个询问的答案如下:
- 对于第 1 个询问,S3S4…S9=
ssissip,其中相同小写英文字母相邻出现的位置有 S3S4= ss 和 S6S7= ss,共 2 个。
- 对于第 2 个询问,S4S5…S10=
sissipp,其中相同小写英文字母相邻出现的位置有 S6S7= ss 和 S9S10= pp,共 2 个。
- 对于第 3 个询问,S4S5S6=
sis,没有相同小写英文字母相邻出现,答案为 0。
- 对于第 4 个询问,S7=
s,没有相同小写英文字母相邻出现,答案为 0。
样例解释 2
S1S2…S5= aaaaa,其中相同小写英文字母相邻出现的位置有 S1S2= aa、S2S3= aa、S3S4= aa、S4S5= aa,共 4 个。
由 ChatGPT 4.1 翻译