#2988. Simple String Queries

0

Simple String Queries

Simple String Queries

题目描述

给你一个长度为 NN 的字符串 SS,由小写英文字母组成。 处理 QQ 个以下两种类型的查询:

类型 11:将 SS 的第 iqi_q 个字符更改为 cqc_q。(如果第 iqi_q 个字符已经是 cqc_q 则不做任何操作。) 类型 22:回答在字符串 SS 中第 lql_q 到第 rqr_q 个字符(包含端点)所形成的子串中出现的不同字符的数量。

输入格式

输入按下列格式从标准输入给出: NN SS QQ Query1Query_1 ⋮\vdots QueryQQuery_Q

其中,第 44 行到第 (Q+3)(Q+3) 行的 QueryiQuery_i 为下列其中一种格式: 11 iqi_q cqc_q

22 lql_q rqr_q

输出格式

对于每个类型 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

提示

NN、QQ、iqi_q、lql_q 和 rqr_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 每个测试用例中至少有一个类型 22 的查询。在第一个查询中,cdbbcdbb 包含三种字母:bb、cc 和 dd,所以我们输出 33。 在第二个查询中,SS 被修改为 abcdzbdabcdzbd。 在第三个查询中,aa 包含一种字母:aa,所以我们输出 11。 在第四个查询中,SS 被修改为 abcazbdabcazbd。 在第五个查询中,SS 没有改变,仍然是 abcazbdabcazbd。 在第六个查询中,abcazbdabcazbd 包含五种字母:aa、bb、cc、dd 和 zz,所以我们输出 55。

标签: AtCoder|abc157E

来源

AtCoder|abc157E