44 #CSPJ202605C. ABC
ABC
【题目描述】
小华正在玩一个字符串游戏。他有一个长度为 的大写字母字符串 ,接下来会有 次修改操作。每次操作会将字符串中某个位置的字符替换成另一个大写字母,然后需要立即回答:当前字符串中包含多少个 ABC 作为连续子串?
这里,子串指的是从原字符串中截取一段连续的字符序列。例如,ab 是 abc 的子串,但 ac 不是,因为它们不连续。
请你帮助小华高效地处理这些查询。
【输入格式】
第一行包含两个整数 和 ,分别表示字符串长度和查询次数。
第二行包含一个长度为 的字符串 ,仅由大写英文字母组成。
接下来 行,每行包含一个整数 和一个字符 ,表示将 的第 个字符替换为 。
【输出格式】
输出 行,第 行表示第 次查询后字符串中 ABC 子串的数量。
【样例 1】
7 4
ABCDABC
4 B
3 A
5 C
4 G
2
1
1
0
【样例 1 解释】
每次查询处理后,字符串 的变化如下:
- 处理第 个查询后:
ABCBABC,其中ABC出现了 次(位置 - 和位置 -)。 - 处理第 个查询后:
ABABABC,其中ABC出现了 次(位置 -)。 - 处理第 个查询后:
ABABCBC,其中ABC出现了 次(位置 -)。 - 处理第 个查询后:
ABAGCBC,其中ABC出现了 次。
【样例 2】
3 3
ABC
1 A
2 B
3 C
1
1
1
【样例 2 解释】
查询处理前后,字符串 可能保持不变。在这个例子中,每次修改都是将字符改成相同的字符,所以 ABC 的数量始终为 。
【样例 3】
15 10
BBCCBCACCBACACA
9 C
11 B
5 B
11 B
4 A
8 C
8 B
5 B
7 B
14 B
0
0
0
0
1
1
2
2
1
1
【数据规模与约定】
- 是一个长度为 的字符串,仅由大写英文字母组成
- 是大写英文字母
相关
在下列比赛中: