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 翻译