AT_mujin_pc_2017_c Robot and String

题目描述

你正在开发一个处理字符串的机器人。给这个机器人一个只由小写英文字母组成的字符串 $t$,机器人会按照以下步骤处理字符串: 1. 选择满足 $t_i = t_{i+1}$ 的最小的 $i$。如果不存在这样的 $i$,处理结束。 2. 如果 $t_i$ 是 `z`,则移除 $t_i$ 和 $t_{i+1}$。如果 $t_i$ 不是 `z`,则取 $t_i$ 的下一个字母 $c$,将 $t_i$ 和 $t_{i+1}$ 一起替换为一个 $c$。 3. 返回步骤 1。 例如,给字符串 `axxxxza` 给机器人后,字符串将按照如下方式被处理:`axxxxza` → `ayxxza` → `ayyza` → `azza` → `aa` → `b`。 现给定一个只包含小写英文字母的字符串 $s$,请你回答 $Q$ 个询问。第 $i$ 个询问如下: - 若将 $s$ 的第 $l_i$ 个字符到第 $r_i$ 个字符(包含两端)所组成的连续子串交给机器人处理,处理结束后字符串是否为空?

输入格式

输入按以下格式从标准输入读入: > $s$ $Q$ > $l_1$ $r_1$ > $l_2$ $r_2$ > $\ldots$ > $l_Q$ $r_Q$

输出格式

输出 $Q$ 行。对于第 $i$ 个询问,若结果字符串最终为空则输出 `Yes`,否则输出 `No`。

说明/提示

### 限制条件 - $1 \leq |s| \leq 5 \times 10^5$ - $s$ 只包含小写英文字母。 - $1 \leq Q \leq 10^5$ - $1 \leq l_i \leq r_i \leq |s|$ ### 样例解释 1 - 对第 $1$ 个询问,字符串经过处理为 `axxxxza` → `ayxxza` → `ayyza` → `azza` → `aa` → `b`,最终结果为 `b`,因此输出 `No`。 - 对第 $2$ 个询问,字符串经过处理为 `xxxxz` → `yxxz` → `yyz` → `zz` → ``(空串),因此输出 `Yes`。 由 ChatGPT 5 翻译