AT_abc415_f [ABC415F] Max Combo
题目描述
有一个长度为 $N$ 的仅由小写英文字母组成的字符串 $S$。请处理共 $Q$ 个如下的查询:
- 类型 $1$:将 $S$ 的第 $i$ 个字符修改为 $x$。
- 类型 $2$:取当前 $S$ 的第 $l$ 个字符到第 $r$ 个字符组成的子串 $t$。对于该字符串,求如下定义的 $f(t)$。
- $f(t)$ 是 $t$ 中相同字符连续出现的最大长度。
- 更严格地说,选择满足 $1\leq a\leq b\leq |t|$ 且 $t$ 的第 $a$ 个字符到第 $b$ 个字符全部相等的整数 $a,b$ 时,$f(t)$ 是所有 $b-a+1$ 的最大值。
- 例如,$f($`aaaccbbbb`$)=4$,$f($`bbaaabb`$)=3$,$f($`x`$)=1$。
输入格式
输入按以下格式从标准输入读入。
> $N$ $Q$
> $S$
> $\rm{Query}_1$
> $\rm{Query}_2$
> $\vdots$
> $\rm{Query}_Q$
其中,$\rm{Query}_i$ 表示第 $i$ 个查询。
类型 $1$ 的查询格式如下:
> 1 $i$ $x$
类型 $2$ 的查询格式如下:
> 2 $l$ $r$
输出格式
每当出现类型 $2$ 的查询时,输出对应的答案,每个答案占一行。
注意,输入输出数据量可能较大,建议使用高效的输入输出方法。
说明/提示
### 限制条件
- $N$ 是 $1$ 到 $5\times 10^5$ 之间的整数。
- $S$ 是长度为 $N$ 的小写英文字母字符串。
- $Q$ 是 $1$ 到 $5\times 10^5$ 之间的整数。
- 类型 $1$ 查询满足以下限制:
- $i$ 是 $1$ 到 $N$ 之间的整数。
- $x$ 是小写英文字母。
- 类型 $2$ 查询满足以下限制:
- $l,r$ 是满足 $1\leq l\leq r\leq N$ 的整数。
### 样例解释 1
本输入包含 $5$ 个查询。
- 初始字符串 $S$ 为 `babaacczcc`。
- 第 $1$ 个查询为类型 $2$,$l=1,r=4$。
- 取出的子串为 `baba`,$f($`baba`$)=1$。
- 第 $2$ 个查询为类型 $1$,$i=3,x=$`a`。
- 修改后字符串 $S=$`baaaacczcc`。
- 第 $3$ 个查询为类型 $2$,$l=1,r=10$。
- 取出的子串为 `baaaacczcc`,$f($`baaaacczcc`$)=4$。
- 第 $4$ 个查询为类型 $1$,$i=8,x=$`c`。
- 修改后字符串 $S=$`baaaaccccc`。
- 第 $5$ 个查询为类型 $2$,$l=1,r=10$。
- 取出的子串为 `baaaaccccc`,$f($`baaaaccccc`$)=5$。
### 样例解释 2
也有可能没有任何输出。
由 ChatGPT 4.1 翻译