#loj5606. 「JOI 2026 Semifinal」奇妙的机器

「JOI 2026 Semifinal」奇妙的机器

[AdditionalFile5606.zip](file://AdditionalFile5606.zip?type=additional_file)

#5606. 「JOI 2026 Semifinal」奇妙的机器

标签: 传统 | 时间限制: 2000 ms | 内存限制: 1024 MiB |

题目描述

题目译自 JOI 2026 Semifinal T6 「奇妙な機械 / Strange Machine

你有 NN 块瓷砖,编号从 11NN。每块瓷砖的正面和背面颜色要么是黑色,要么是白色。这里,黑色用字符 B 表示,白色用字符 W 表示。瓷砖 ii (1iN)(1 \leq i \leq N) 的正面颜色由字符串 SS 的第 ii 个字符表示,背面颜色由字符串 TT 的第 ii 个字符表示。

乌兹别克斯坦是一个以瓷砖装饰的历史建筑而闻名的国家。在访问了乌兹别克斯坦的清真寺和伊斯兰学校后,你被那些美丽的建筑所吸引,购买了一台关于瓷砖的奇妙机器。这台机器有左侧和右侧两个台座,如果在每个台座上各放一块瓷砖,作为交换,你可以用这两块瓷砖换取一块新的瓷砖。设放在左侧台座的瓷砖为 aa,放在右侧台座的瓷砖为 bb,作为交换得到的瓷砖 cc 满足以下条件:

  • 如果 aa 的背面颜色和 bb 的正面颜色相同,cc 的正面颜色为黑色,否则为白色。
  • 如果 aa 的正面颜色和 bb 的背面颜色相同,cc 的背面颜色为黑色,否则为白色。

你决定利用这 NN 块瓷砖和这台奇妙的机器,在 QQ 天内进行如下行动。第 jj (1jQ)(1 \leq j \leq Q) 天进行的行动是以下两种模式之一:

  • 模式 1:将瓷砖 XjX_{j} 的正面颜色更改为字符 YjY_{j} 表示的颜色。同时,将瓷砖 XjX_{j} 的背面颜色更改为字符 ZjZ_{j} 表示的颜色。其中,Yj,ZjY_{j}, Z_{j} 均为 BW
  • 模式 2:将瓷砖 Lj,Lj+1,,RjL_{j}, L_{j}+1, \ldots, R_{j} 按此顺序从左到右排成一列。对于这一列瓷砖,进行以下操作 00 次或更多次(但不超过 RjLjR_{j}-L_{j} 次),进行一次思想实验,判断是否能使列中正面颜色为白色的瓷砖恰好有 MjM_{j} 块。
    • 在列中选择相邻的两块瓷砖并将它们从列中移除。将选中的两块瓷砖中原先位于左侧的放在机器的左侧台座,原先位于右侧的放在机器的右侧台座,用这两块瓷砖换取一块新瓷砖。然后,将换取的一块新瓷砖放入列中原先那两块瓷砖所在的位置。

给定瓷砖的信息和行动的信息,请编写程序求出模式 2 行动的结果。

输入格式

第一行包含一个整数 NN

第二行包含一个整数 SS

第三行包含一个整数 TT

第四行包含一个整数 QQ

接下来 QQ 行,每行描述了一个询问,包含若干空格分隔的整数。其中第一个是整数 1122,设其为 PjP_{j},该行的内容如下:

  • Pj=1P_{j}=1 时,该行接着包含 11 个整数 XjX_{j}22 个字符 Yj,ZjY_{j}, Z_{j},按此顺序排列。这表示你在第 jj 天采取的行动是模式 1,即将瓷砖 XjX_{j} 的正面颜色更改为 YjY_{j},背面颜色更改为 ZjZ_{j}。其中 Yj,ZjY_{j}, Z_{j} 均为 BW
  • Pj=2P_{j}=2 时,该行接着包含 33 个整数 Lj,Rj,MjL_{j}, R_{j}, M_{j},按此顺序排列。这表示你在第 jj 天采取的行动是模式 2,即将瓷砖 Lj,Lj+1,,RjL_{j}, L_{j}+1, \ldots, R_{j} 按此顺序排列,并进行操作,判断是否能使列中正面颜色为白色的瓷砖恰好有 MjM_{j} 块。

输出格式

对于每个 Pj=2P_{j}=2jj (1jQ)(1 \leq j \leq Q),如果能使列中正面颜色为白色的瓷砖恰好有 MjM_{j} 块,则输出 Yes,否则输出 No,按 jj 从小到大换行输出。

样例 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

对于第 11 天的行动,将瓷砖 3,43, 4 按此顺序排成一列。如果不进行任何操作,只有瓷砖 33 的正面是白色,因此可以使列中正面为白色的瓷砖恰好有 11 块。输出 Yes

对于第 22 天的行动,将瓷砖 1,21, 2 按此顺序排成一列。选择瓷砖 1122 进行 11 次操作,操作后的列包含 11 块瓷砖。该瓷砖的正面和背面均为黑色,因此可以使列中正面为白色的瓷砖恰好有 00 块。输出 Yes

对于第 33 天的行动,将瓷砖 33 的正面和背面颜色都改为黑色。

对于第 44 天的行动,将瓷砖 3,43, 4 按此顺序排成一列。可以证明,无论如何操作,都无法使列中正面为白色的瓷砖恰好有 22 块。输出 No

对于第 55 天的行动,将瓷砖 2,3,42, 3, 4 按此顺序排成一列。选择瓷砖 3344 进行 11 次操作,操作后的列包含 22 块瓷砖。左侧是瓷砖 22,右侧瓷砖的正面和背面均为黑色。再选择这两块瓷砖进行 11 次操作,操作后的列包含 11 块瓷砖。该瓷砖正面为白色,背面为黑色,因此可以使列中正面为白色的瓷砖恰好有 11 块。输出 Yes

此样例满足子任务 1,5,6,71, 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

此样例满足所有子任务的限制。

数据范围与提示

对于所有输入数据,满足:

  • 1N3000001 \leq N \leq 300000
  • SS 是由 B, W 组成的长度为 NN 的字符串。
  • TT 是由 B, W 组成的长度为 NN 的字符串。
  • 1Q3000001 \leq Q \leq 300000
  • PjP_{j}1122 (1jQ)(1 \leq j \leq Q)
  • Pj=1P_{j}=1 时,1XjN1 \leq X_{j} \leq N (1jQ)(1 \leq j \leq Q)
  • Pj=1P_{j}=1 时,YjY_{j}BW (1jQ)(1 \leq j \leq Q)
  • Pj=1P_{j}=1 时,ZjZ_{j}BW (1jQ)(1 \leq j \leq Q)
  • Pj=2P_{j}=2 时,1LjRjN1 \leq L_{j} \leq R_{j} \leq N (1jQ)(1 \leq j \leq Q)
  • Pj=2P_{j}=2 时,0MjRjLj+10 \leq M_{j} \leq R_{j}-L_{j}+1 (1jQ)(1 \leq j \leq Q)
  • N,Q,Pj,Xj,Lj,Rj,MjN, Q, P_{j}, X_{j}, L_{j}, R_{j}, M_{j} 均为整数。

详细子任务附加限制及分值如下表所示。

子任务 分值 附加限制
11 66 N6N \leq 6
22 1010 N100,Pj=2N \leq 100, P_{j}=2 (1jQ)(1 \leq j \leq Q)
33 99 N500,Pj=2N \leq 500, P_{j}=2 (1jQ)(1 \leq j \leq Q)
44 88 N1700,Pj=2N \leq 1700, P_{j}=2 (1jQ)(1 \leq j \leq Q)
55 2323 N10000,Q10000N \leq 10000, Q \leq 10000
66 1414 N100000,Q100000N \leq 100000, Q \leq 100000
77 3030 无附加限制