AT_abc331_f [ABC331F] Palindrome Query
题目描述
给定一个由小写英文字母组成、长度为 $N$ 的字符串 $S$。
请按给定顺序处理 $Q$ 个如下所述的查询。
查询有以下两种类型之一:
- `1 x c` :将 $S$ 的第 $x$ 个字符修改为小写英文字母 $c$。
- `2 L R` :如果 $S$ 的第 $L$ 个字符到第 $R$ 个字符组成的子串是回文串,则输出 `Yes`,否则输出 `No`。
输入格式
输入按以下格式从标准输入给出。这里 $\text{query}_i$ 表示第 $i$ 个需要处理的查询。
> $N$ $Q$
> $S$
> $\text{query}_1$
> $\text{query}_2$
> $\vdots$
> $\text{query}_Q$
每个查询有以下两种格式之一:
> $1$ $x$ $c$
> $2$ $L$ $R$
输出格式
请按照题目要求,对每个查询输出答案,每个答案占一行。
说明/提示
### 限制条件
- $1 \leq N \leq 10^6$
- $1 \leq Q \leq 10^5$
- $S$ 是由小写英文字母组成的长度为 $N$ 的字符串
- $1 \leq x \leq N$
- $c$ 是小写英文字母
- $1 \leq L \leq R \leq N$
- $N, Q, x, L, R$ 均为整数
### 样例解释 1
初始时,$S = $ `abcbacb`。
对于第 $1$ 个查询,$S$ 的第 $1$ 到第 $5$ 个字符组成的字符串为 `abcba`,这是回文串,因此输出 `Yes`。
对于第 $2$ 个查询,$S$ 的第 $4$ 到第 $7$ 个字符组成的字符串为 `bacb`,这不是回文串,因此输出 `No`。
对于第 $3$ 个查询,$S$ 的第 $2$ 到第 $2$ 个字符组成的字符串为 `b`,这是回文串,因此输出 `Yes`。
对于第 $4$ 个查询,将 $S$ 的第 $5$ 个字符修改为 `c`,$S$ 变为 `abcbccb`。
对于第 $5$ 个查询,$S$ 的第 $1$ 到第 $5$ 个字符组成的字符串为 `abcbc`,这不是回文串,因此输出 `No`。
对于第 $6$ 个查询,$S$ 的第 $4$ 到第 $7$ 个字符组成的字符串为 `bccb`,这是回文串,因此输出 `Yes`。
对于第 $7$ 个查询,将 $S$ 的第 $4$ 个字符修改为 `c`,$S$ 变为 `abccccb`。
对于第 $8$ 个查询,$S$ 的第 $3$ 到第 $6$ 个字符组成的字符串为 `cccc`,这是回文串,因此输出 `Yes`。
由 ChatGPT 4.1 翻译