#ABC157E. 字符串查询

字符串查询

字符串查询

题目描述

给定一个长度为 NN、由小写英文字母组成的字符串 SS。

请处理 QQ 个查询。每个查询是以下两种之一:

  • type 11:将 SS 的第 iqi_q 个字符改为 cqc_q。如果 SS 的第 iqi_q 个字符本来就是 cqc_q,则不进行任何操作。
  • type 22:回答由 SS 的第 lql_q 到第 rqr_q 个字符(含两端)组成的子串中出现了多少种字符。

输入格式

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

NN
SS
QQ
Query1Query_1
⋮\vdots
QueryQQuery_Q

第 44 行到第 Q+3Q+3 行的 QueryiQuery_i 是以下两种之一:

11 iqi_q cqc_q

表示进行 type 11 的操作。

22 lql_q rqr_q

表示进行 type 22 的操作。

输出格式

对于每个 type 22 的查询,将答案用换行分隔输出。

样例

7
abcdbbd
6
2 3 6
1 5 z
2 1 1
1 4 a
1 7 d
2 1 7
3
1
5

第 11 个查询中,cdbb 包含 b、c、d 共 33 种字符,因此输出 33。

第 22 个查询使 SS 变为 abcdzbd。

第 33 个查询中,a 包含 a 共 11 种字符,因此输出 11。

第 44 个查询使 SS 变为 abcazbd。

第 55 个查询中,SS 保持不变,仍为 abcazbd。

第 66 个查询中,abcazbd 包含 a, b, c, d, z 共 55 种字符,因此输出 55。

数据范围

  • N,Q,iq,lq,rqN, Q, i_q, l_q, r_q 是整数
  • SS 是由小写英文字母组成的字符串
  • cqc_q 是小写英文字母
  • 1≤N≤5000001 \leq N \leq 500000
  • 1≤Q≤200001 \leq Q \leq 20000
  • ∣S∣=N|S| = N
  • 1≤iq≤N1 \leq i_q \leq N
  • 1≤lq≤rq≤N1 \leq l_q \leq r_q \leq N
  • 每个测试用例中至少有一个 type 22 的查询
难度 提高
通过率 —
尝试 0
通过 0
ID
1888
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签