AT_abc473_f [ABC473F] A/AB Insertion

题目描述

给定一个由 `A` 和 `B` 组成、长度为 $N$ 的字符串 $S$。 你需要处理总计 $Q$ 个如下两种类型的操作: > 1 $i$ $c$ > > 类型 $1$:将字符串 $S$ 的第 $i$ 个字符改为 $c$。 > 2 $l$ $r$ > > 类型 $2$: > 令字符串 $T$ 为当前字符串 $S$ 的第 $l$ 个到第 $r$ 个字符组成的子串。 > 如果能够通过如下操作从空串得到字符串 $T$,则输出 `Yes`,否则输出 `No`。 > > - 从空字符串出发,可以任意次数、按任意顺序执行以下两种操作(包括零次): > - 在字符串的任意位置(可以是开头或结尾)插入 `A`。 > - 在字符串的任意位置(可以是开头或结尾)插入 `AB`。

输入格式

输入按如下格式从标准输入读入: > $N$ $S$ $Q$ ${\rm Query}_1$ ${\rm Query}_2$ $\vdots$ ${\rm Query}_Q$ 其中,${\rm Query}_i$ 表示第 $i$ 个操作,操作的输入格式如题目描述所述。

输出格式

每当遇到一次类型 $2$ 的操作时,输出一行答案。

说明/提示

### 样例说明 1 本样例共包含六次操作。 - 初始时,$S=$ `AABBAABABB`。 - 第 $1$ 次操作,$T=$ `AABBAABABB`,可通过以下步骤获得,应输出 `Yes`: - 从空串开始。 - 在空串开头插入 `AB`,得到 `AB`。 - 在 `AB` 的第 $1$ 个字符后插入 `AB`,得到 `AABB`。 - 在 `AABB` 末尾插入 `AB`,得到 `AABBAB`。 - 在 `AABBAB` 的第 $5$ 个字符后插入 `AB`,得到 `AABBAABB`。 - 在 `AABBAABB` 的第 $7$ 个字符后插入 `AB`,得到 `AABBAABABB`。 - 第 $2$ 次操作,将 $S$ 的第 $5$ 个字符改为 `B`,此时 $S=$ `AABBBABABB`。 - 第 $3$ 次操作,$T=$ `AABBBABABB`,无法通过题述操作获得,应输出 `No`。 - 第 $4$ 次操作,$T=$ `ABA`,可以通过题述操作获得,应输出 `Yes`。 - 第 $5$ 次操作,将 $S$ 的第 $3$ 个字符改为 `A`,此时 $S=$ `AAABBABABB`。 - 第 $6$ 次操作,$T=$ `AAABBABABB`,可以通过题述操作获得,应输出 `Yes`。 ### 数据范围 - $1 \le N \le 5 \times 10^5$ - $S$ 是长度为 $N$ 的仅包含 `A` 和 `B` 的字符串。 - $1 \le Q \le 2 \times 10^5$ - 类型 $1$ 操作满足: - $1 \le i \le N$ - $c$ 为 `A` 或 `B` - 类型 $2$ 操作满足: - $1 \le l \le r \le N$ 由 ChatGPT 5 翻译