#P15456. [JOI 2026 SemiFinal] 奇妙な機械 / Strange Machine
[JOI 2026 SemiFinal] 奇妙な機械 / Strange Machine
说明
你拥有 枚瓷砖,编号为 到 。每枚瓷砖的正面和反面颜色均为黑色或白色。这里,黑色用字符 'B' 表示,白色用字符 'W' 表示。瓷砖 ()的正面颜色由字符串 的第 个字符表示,瓷砖 的反面颜色由字符串 的第 个字符表示。
乌兹别克斯坦以其瓷砖装饰的历史建筑而闻名。在参观了乌兹别克斯坦的清真寺和伊斯兰学校后,你被这些美丽的建筑所吸引,并购买了一台奇特的机器。这台机器左右两侧各有一个平台,在每个平台上各放置一枚瓷砖,就可以用这两枚瓷砖换得一枚新瓷砖。设左平台放置的瓷砖为 ,右平台放置的瓷砖为 ,则用 和 换得的新瓷砖 满足以下条件:
- 的正面颜色:若 的反面颜色与 的正面颜色相同则为黑色,否则为白色。
- 的反面颜色:若 的正面颜色与 的反面颜色相同则为黑色,否则为白色。
你打算用这 枚瓷砖和这台奇特机器,在 天里进行以下活动。第 天()的活动为模式 1 或模式 2 之一:
- 模式 1:将瓷砖 的正面颜色改为字符 所表示的颜色,并将瓷砖 的反面颜色改为字符 所表示的颜色。其中 为
'B'或'W'。 - 模式 2:将瓷砖 按此顺序从左到右排成一列。针对这一列,你可以进行任意次( 次到 次)以下操作,然后思考能否使得该列中正面为白色的瓷砖恰好为 枚:
- 选择列中相邻的两枚瓷砖,将它们从列中取出。将这两枚瓷砖中原本位于左侧的放到机器的左平台,右侧的放到右平台,用这两枚瓷砖换得一枚新瓷砖,然后将这枚新瓷砖插入到列中原本两枚瓷砖所在的位置。
给定瓷砖的信息以及每天活动的信息,请编写一个程序,输出所有模式 2 活动的判定结果。
输入格式
输入从标准输入中以以下格式给出:
(Query 1)
(Query 2)
(Query )
每个 (Query )()包含若干个由空格分隔的整数或字符。其中第一个数为整数 或 ,记作 ,则该行的具体内容为以下两种之一:
- 当 时,该行紧接着有一个整数 和两个字符 ,按此顺序给出。表示第 天的活动为模式 1,即把瓷砖 的正面颜色改为 所表示的颜色,反面颜色改为 所表示的颜色。其中 为
B或W。 - 当 时,该行紧接着有三个整数 ,按此顺序给出。表示第 天的活动为模式 2,即将瓷砖 按此顺序从左到右排成一列,并通过操作思考能否使该列中正面为白色的瓷砖恰好为 枚。
输出格式
对于所有满足 的 (),按 的升序每行输出一个结果:如果能使该列中正面为白色的瓷砖恰好为 枚,则输出 Yes,否则输出 No。
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
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
提示
样例解释 1
- 第 1 天:将瓷砖 按此顺序从左到右排成一列。若不进行任何操作,则只有瓷砖 的正面为白色,因此可以使正面为白色的瓷砖恰好为 枚。故输出
Yes。 - 第 2 天:将瓷砖 按此顺序排成一列。若选择瓷砖 和 进行一次操作,操作后的列包含一枚瓷砖,该瓷砖的正面和反面均为黑色,因此可以使正面为白色的瓷砖恰好为 枚。故输出
Yes。 - 第 3 天:将瓷砖 的正面和反面均改为黑色。
- 第 4 天:将瓷砖 排成一列。可以证明无法通过操作使正面为白色的瓷砖恰好为 枚。故输出
No。 - 第 5 天:将瓷砖 排成一列。若先选择瓷砖 和 进行一次操作,操作后列中有两枚瓷砖:左侧为瓷砖 ,右侧为新瓷砖(其正面和反面均为黑色)。再选择这两枚瓷砖进行一次操作,操作后列中剩一枚瓷砖,其正面为白色、反面为黑色,因此可以使正面为白色的瓷砖恰好为 枚。故输出
Yes。
该输入样例满足子任务 的数据范围。
数据范围
- 是由
B、W组成的长度为 的字符串 - 是由
B、W组成的长度为 的字符串 - 为 或 ()
- 当 时,()
- 当 时, 为
'B'或'W'() - 当 时, 为
'B'或'W'() - 当 时,()
- 当 时,()
- 均为整数
子任务
- (6 分)
- (10 分) ,且 ()
- (9 分) ,且 ()
- (8 分) ,且 ()
- (23 分) ,
- (14 分) ,
- (30 分) 无额外限制
翻译由 DeepSeek 完成
京公网安备 11011102002149号