A35297.统计满足条件的子串个数
普及+/提高
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
给定一个长度为 N 的字符串 S。
你需要执行 Q 个操作,第 i 个操作的类型为 Ti:
- Ti=1:给定一个整数 Xi 和 字符 Ci,将字符串 S 中的第 Xi 个字符修改为 Ci。
- Ti=2:给定两个字符 Ai 和 Bi,统计字符串 S 中有多少「子串」以 Ai 开头,以 Bi 结尾。
「子串」是由字符串中的连续字符组成的一个序列;例如:
ab
、a
、bab
和ababc
都是字符串ababc
的子串,而ac
和z
不是。
数据范围
- 1≤N, Q≤105
- Ti=1 或 2
- 1≤Xi≤N
- S 中的字符以及 Ai,Bi,Ci 均为小写字母。
- 所有查询中至少有 1 个为 Ti=2 类型。
- 题目保证至少 40% 的数据 N,Q≤500
- 题目保证至少 10% 的数据操作只有 Ti=2
输入格式
对于每个测试文件输入格式如下:
N Q
S
Query1
Query2
⋮
QueryQ
对于每个 Queryi 若 Ti=1:
Ti Xi Ci
否则:
Ti Ai Bi
输出格式
对于所有的 Ti=2 在单独的一行中输出统计的答案。
输入输出样例
输入#1
6 4 abacac 2 a c 1 4 b 2 a b 2 a c
输出#1
5 3 3
输入#2
10 17 wfimwkiihw 1 7 z 2 m z 2 f i 1 6 x 1 6 c 2 c w 1 6 w 2 w w 2 f w 1 10 l 1 10 c 2 i j 1 5 s 2 s c 1 4 a 1 10 o 2 w o
输出#2
1 2 1 10 3 0 1 2
输入#3
8 12 aaaabbbb 2 a a 2 a b 1 2 b 2 a b 1 4 b 1 5 a 2 b a 2 a b 1 7 a 2 a b 2 b a 2 b b
输出#3
10 16 13 3 12 10 6 10
说明/提示
样例 1:
- 以
a
开头,以c
结尾的子串共有 5 个:ac
,ac
,abac
,acac
,abacac
。 - 将 S4 修改为
b
,S 变为ababac
。 - 以
a
开头,以b
结尾的子串共有 3 个:ab
,ab
,abab
。 - 以
a
开头,以c
结尾的子串共有 3 个:ac
,abac
,abacac
。