P15456 [JOI 2026 SemiFinal] 奇妙的机器 / Strange Machine

题目描述

你拥有 $N$ 枚瓷砖,编号为 $1$ 到 $N$。每枚瓷砖的正面和反面颜色均为黑色或白色。这里,黑色用字符 `'B'` 表示,白色用字符 `'W'` 表示。瓷砖 $i$($1 \le i \le N$)的正面颜色由字符串 $S$ 的第 $i$ 个字符表示,瓷砖 $i$ 的反面颜色由字符串 $T$ 的第 $i$ 个字符表示。 乌兹别克斯坦以其瓷砖装饰的历史建筑而闻名。在参观了乌兹别克斯坦的清真寺和伊斯兰学校后,你被这些美丽的建筑所吸引,并购买了一台奇特的机器。这台机器左右两侧各有一个平台,在每个平台上各放置一枚瓷砖,就可以用这两枚瓷砖换得一枚新瓷砖。设左平台放置的瓷砖为 $a$,右平台放置的瓷砖为 $b$,则用 $a$ 和 $b$ 换得的新瓷砖 $c$ 满足以下条件: - $c$ 的正面颜色:若 $a$ 的反面颜色与 $b$ 的正面颜色相同则为黑色,否则为白色。 - $c$ 的反面颜色:若 $a$ 的正面颜色与 $b$ 的反面颜色相同则为黑色,否则为白色。 你打算用这 $N$ 枚瓷砖和这台奇特机器,在 $Q$ 天里进行以下活动。第 $j$ 天($1 \le j \le Q$)的活动为模式 1 或模式 2 之一: - **模式 1**:将瓷砖 $X_j$ 的正面颜色改为字符 $Y_j$ 所表示的颜色,并将瓷砖 $X_j$ 的反面颜色改为字符 $Z_j$ 所表示的颜色。其中 $Y_j, Z_j$ 为 `'B'` 或 `'W'`。 - **模式 2**:将瓷砖 $L_j, L_j+1, \dots, R_j$ 按此顺序从左到右排成一列。针对这一列,你可以进行任意次($0$ 次到 $R_j - L_j$ 次)以下操作,然后思考能否使得该列中正面为白色的瓷砖恰好为 $M_j$ 枚: - 选择列中相邻的两枚瓷砖,将它们从列中取出。将这两枚瓷砖中原本位于左侧的放到机器的左平台,右侧的放到右平台,用这两枚瓷砖换得一枚新瓷砖,然后将这枚新瓷砖插入到列中原本两枚瓷砖所在的位置。 给定瓷砖的信息以及每天活动的信息,请编写一个程序,输出所有模式 2 活动的判定结果。

输入格式

输入从标准输入中以以下格式给出: $N$ $S$ $T$ $Q$ (Query 1) (Query 2) $\vdots$ (Query $Q$) 每个 (Query $j$)($1 \le j \le Q$)包含若干个由空格分隔的整数或字符。其中第一个数为整数 $1$ 或 $2$,记作 $P_j$,则该行的具体内容为以下两种之一: - 当 $P_j = 1$ 时,该行紧接着有一个整数 $X_j$ 和两个字符 $Y_j, Z_j$,按此顺序给出。表示第 $j$ 天的活动为模式 1,即把瓷砖 $X_j$ 的正面颜色改为 $Y_j$ 所表示的颜色,反面颜色改为 $Z_j$ 所表示的颜色。其中 $Y_j, Z_j$ 为 `B` 或 `W`。 - 当 $P_j = 2$ 时,该行紧接着有三个整数 $L_j, R_j, M_j$,按此顺序给出。表示第 $j$ 天的活动为模式 2,即将瓷砖 $L_j, L_j+1, \dots, R_j$ 按此顺序从左到右排成一列,并通过操作思考能否使该列中正面为白色的瓷砖恰好为 $M_j$ 枚。

输出格式

对于所有满足 $P_j = 2$ 的 $j$($1 \le j \le Q$),按 $j$ 的升序每行输出一个结果:如果能使该列中正面为白色的瓷砖恰好为 $M_j$ 枚,则输出 `Yes`,否则输出 `No`。

说明/提示

#### 样例解释 1 - 第 1 天:将瓷砖 $3,4$ 按此顺序从左到右排成一列。若不进行任何操作,则只有瓷砖 $3$ 的正面为白色,因此可以使正面为白色的瓷砖恰好为 $1$ 枚。故输出 `Yes`。 - 第 2 天:将瓷砖 $1,2$ 按此顺序排成一列。若选择瓷砖 $1$ 和 $2$ 进行一次操作,操作后的列包含一枚瓷砖,该瓷砖的正面和反面均为黑色,因此可以使正面为白色的瓷砖恰好为 $0$ 枚。故输出 `Yes`。 - 第 3 天:将瓷砖 $3$ 的正面和反面均改为黑色。 - 第 4 天:将瓷砖 $3,4$ 排成一列。可以证明无法通过操作使正面为白色的瓷砖恰好为 $2$ 枚。故输出 `No`。 - 第 5 天:将瓷砖 $2,3,4$ 排成一列。若先选择瓷砖 $3$ 和 $4$ 进行一次操作,操作后列中有两枚瓷砖:左侧为瓷砖 $2$,右侧为新瓷砖(其正面和反面均为黑色)。再选择这两枚瓷砖进行一次操作,操作后列中剩一枚瓷砖,其正面为白色、反面为黑色,因此可以使正面为白色的瓷砖恰好为 $1$ 枚。故输出 `Yes`。 该输入样例满足子任务 $1,5,6,7$ 的数据范围。 ### 数据范围 - $1 \le N \le 300\,000$ - $S$ 是由 `B`、`W` 组成的长度为 $N$ 的字符串 - $T$ 是由 `B`、`W` 组成的长度为 $N$ 的字符串 - $1 \le Q \le 300\,000$ - $P_j$ 为 $1$ 或 $2$($1 \le j \le Q$) - 当 $P_j = 1$ 时,$1 \le X_j \le N$($1 \le j \le Q$) - 当 $P_j = 1$ 时,$Y_j$ 为 `'B'` 或 `'W'`($1 \le j \le Q$) - 当 $P_j = 1$ 时,$Z_j$ 为 `'B'` 或 `'W'`($1 \le j \le Q$) - 当 $P_j = 2$ 时,$1 \le L_j \le R_j \le N$($1 \le j \le Q$) - 当 $P_j = 2$ 时,$0 \le M_j \le R_j - L_j + 1$($1 \le j \le Q$) - $N, Q, P_j, X_j, L_j, R_j, M_j$ 均为整数 ### 子任务 1. (6 分) $N \le 6$ 2. (10 分) $N \le 100$,且 $P_j = 2$($1 \le j \le Q$) 3. (9 分) $N \le 500$,且 $P_j = 2$($1 \le j \le Q$) 4. (8 分) $N \le 1700$,且 $P_j = 2$($1 \le j \le Q$) 5. (23 分) $N \le 10\,000$,$Q \le 10\,000$ 6. (14 分) $N \le 100\,000$,$Q \le 100\,000$ 7. (30 分) 无额外限制 翻译由 DeepSeek 完成