QOJ.ac

QOJ

Time Limit: 2 s Memory Limit: 1024 MB Total points: 100

#17245. Strange Machine

統計

你有 $N$ 块编号为 $1$ 到 $N$ 的瓷砖。每块瓷砖的正面和背面颜色均为黑色或白色。这里,黑色用字符 ‘B’ 表示,白色用字符 ‘W’ 表示。

对于瓷砖 $i$($1 \le i \le N$),其正面的颜色由字符串 $S$ 的第 $i$ 个字符表示;其背面的颜色由字符串 $T$ 的第 $i$ 个字符表示。

乌兹别克斯坦以瓷砖装饰的历史建筑而闻名。参观了乌兹别克斯坦的清真寺和宗教学校后,你被这些美丽的建筑所吸引,并购买了一台与瓷砖有关的奇妙机器。

这台机器左右两侧各有一个台座。每次可以在左右台座各放置一块瓷砖,用这两块瓷砖交换得到一块新的瓷砖。设放在左侧台座的瓷砖为 $a$,右侧台座的瓷砖为 $b$,则用 $a, b$ 交换得到的新瓷砖 $c$ 满足以下条件:

  • 若 $a$ 的背面颜色与 $b$ 的正面颜色相同,则 $c$ 的正面为黑色;否则为白色。
  • 若 $a$ 的正面颜色与 $b$ 的背面颜色相同,则 $c$ 的背面为黑色;否则为白色。

你打算在接下来的 $Q$ 天中,使用这 $N$ 块瓷砖和这台奇妙机器进行如下操作。第 $j$ 天($1 \le j \le Q$)的操作为以下两种模式之一:

  • 模式 1:将瓷砖 $X_j$ 的正面颜色修改为字符 $Y_j$ 所表示的颜色,并将其背面颜色修改为字符 $Z_j$ 所表示的颜色。其中,$Y_j, Z_j$ 为 ‘B’ 或 ‘W’。
  • 模式 2:将瓷砖 $L_j, L_j + 1, \dots, R_j$ 按此顺序从左到右排成一列。对该序列进行不超过 $R_j - L_j$ 次(可以为 $0$ 次)如下操作,判断是否能够使序列中正面为白色的瓷砖恰好有 $M_j$ 块。
    • 选择序列中相邻的两块瓷砖,将它们从序列中取出。将其中在序列中位于左侧的瓷砖放到机器的左侧台座,位于右侧的瓷砖放到机器的右侧台座,换取一块新的瓷砖。然后将得到的新瓷砖放回原来两块瓷砖所在的位置。

给定瓷砖信息与操作信息,请编写程序,对于每个模式 2 的操作输出结果。

输入格式

输入从标准输入按如下格式给出:

N
S
T
Q
(Query 1)
(Query 2)
.
.
.
(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 \le N \le 300\,000$。
  • $S$ 为长度为 $N$、仅由 ‘B’, ‘W’ 构成的字符串。
  • $T$ 为长度为 $N$、仅由 ‘B’, ‘W’ 构成的字符串。
  • $1 \le Q \le 300\,000$。
  • 对于 $1 \le j \le Q$,$P_j$ 为 $1$ 或 $2$。
  • 当 $P_j = 1$ 时,$1 \le X_j \le N$。
  • 当 $P_j = 1$ 时,$Y_j$ 为 ‘B’ 或 ‘W’。
  • 当 $P_j = 1$ 时,$Z_j$ 为 ‘B’ 或 ‘W’。
  • 当 $P_j = 2$ 时,$1 \le L_j \le R_j \le N$。
  • 当 $P_j = 2$ 时,$0 \le M_j \le R_j - L_j + 1$。
  • 所有 $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 1\,700$,且 $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 分)无额外限制。

样例数据 1

输入

4
WBWB
BWBB
5
2 3 4 1
2 1 2 0
1 3 B B
2 3 4 2
2 2 4 1

输出

Yes
Yes
No
Yes

关于第 1 天的操作,将瓷砖 $3, 4$ 从左到右排成一列。若不进行任何操作,则只有瓷砖 $3$ 的正面为白色,因此可以使正面为白色的瓷砖恰好为 $1$ 块,输出 Yes

关于第 2 天的操作,将瓷砖 $1, 2$ 从左到右排成一列。若选择瓷砖 $1$ 和 $2$ 执行一次操作,则操作后序列只剩下一块瓷砖。该瓷砖的正面和背面均为黑色,因此可以使正面为白色的瓷砖恰好为 $0$ 块,输出 Yes

第 3 天为模式 1 操作,将瓷砖 $3$ 的正面和背面均改为黑色。

关于第 4 天的操作,将瓷砖 $3, 4$ 从左到右排成一列。可以证明无法通过操作使正面为白色的瓷砖恰好为 $2$ 块,因此输出 No

关于第 5 天的操作,将瓷砖 $2, 3, 4$ 从左到右排成一列。若先选择瓷砖 $3$ 和 $4$ 执行一次操作,则序列变为两块瓷砖。左侧为瓷砖 $2$,右侧为一块正反面均为黑色的新瓷砖。再对这两块瓷砖执行一次操作后,序列只剩下一块瓷砖,其正面为白色,背面为黑色,因此可以使正面为白色的瓷砖恰好为 $1$ 块,输出 Yes

该输入样例满足子任务 1、5、6、7 的限制。

样例数据 2

输入

6
BWBWWB
WBWBBB
8
2 1 3 2
2 2 6 0
2 1 5 3
2 3 3 0
2 3 4 1
2 5 6 2
2 2 6 4
2 1 4 2

输出

No
Yes
Yes
Yes
Yes
No
No
Yes

该输入样例满足所有子任务的限制。

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.