CF1344F Piet's Palette

题目描述

Piet Mondrian 是一位以极简主义作品闻名的艺术家,他的作品只使用红、黄、蓝、白四种颜色。大多数人认为这是他的风格,但实际上,他的颜料有一种非常奇特的性质:混合两种原色只会产生另一种原色! ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1344F/2be4727abdb408d67cbd00657084f8ac6aeefb1b.png) 一幅鲜为人知的作品,名为“Pretentious rectangles”。 有一串原色(红、黄、蓝),混合规则如下:当序列中至少有两种颜色时,观察前两个颜色。如果它们不同,则用缺失的那种颜色替换它们;如果相同,则将它们从序列中移除。最终,如果只剩下一种颜色,则该颜色就是混合结果;如果序列为空,则混合结果为白色。以下是两个混合示例: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1344F/0d5acab5b6e2698d753729f2244a54e128c1dadc.png) ![](https://cdn.luogu.com.cn/upload/vjudge_pic/CF1344F/0e35eaf3076696afd2308dd7c4d3d1cf2dfb5127.png) Piet 有一个调色板,格子编号从 $1$ 到 $n$。每个格子要么为空,要么包含一种原色。Piet 非常保密,不会告诉你每个格子的颜色。 不过,他进行了 $k$ 次操作。操作分为四种: 1. 混合操作(mix):Piet 选择一组格子,并按某种顺序混合它们的颜色(顺序不一定按编号递增)。他记录混合结果。空格子会被跳过,对混合没有影响。混合操作不会改变格子中的颜色。 2. RY 操作:Piet 选择一组格子,将其中所有红色格子变为黄色,黄色格子变为红色。蓝色和空格子不变。 3. RB 操作:Piet 选择一组格子,将其中所有红色格子变为蓝色,蓝色格子变为红色。黄色和空格子不变。 4. YB 操作:Piet 选择一组格子,将其中所有黄色格子变为蓝色,蓝色格子变为黄色。红色和空格子不变。 Piet 只会告诉你他按时间顺序执行的操作列表、涉及的格子编号,以及每次混合操作的混合结果。对于每次混合操作,你还知道混合的顺序。请根据这些信息,确定初始调色板中每个格子的颜色。也就是说,你需要找出一种可能的初始状态(在所有操作执行前),或者说明这种情况不可能存在。

输入格式

第一行包含两个整数 $n$ 和 $k$($1 \leq n, k \leq 1000$),分别表示调色板的格子数和操作数。 接下来的 $k$ 行描述每次操作。第 $i$ 行以操作名称和整数 $m$($1 \leq m \leq n$)开头,表示涉及的格子数。接下来是 $m$ 个整数 $j_1, \ldots, j_m$($1 \leq j_i \leq n$),表示操作涉及的格子编号。保证每次操作中所有 $j_i$ 互不相同。如果是混合操作,格子编号按混合顺序给出,行末还会有一个字符表示混合结果:"R" 表示红色,"Y" 表示黄色,"B" 表示蓝色,"W" 表示白色。

输出格式

如果存在解,输出 "YES";否则输出 "NO"。输出时字母大小写均可。 如果答案为 "YES",下一行输出一个长度为 $n$ 的字符串,表示初始调色板中每个格子的颜色,分别用 "R"、"Y"、"B" 和 "." 表示(红、黄、蓝和空)。如果有多种解,输出任意一种均可。输出时字母大小写均可。

说明/提示

对于第一个测试用例,答案 "YB." 与两次混合操作均一致。第一次混合 "BY" 得到红色,第二次混合 "Y" 得到黄色(空格子被忽略)。其它合法答案还包括 "BYR" 和 ".RY"。 对于第二个测试用例,可以证明不存在解。 对于第三个测试用例,答案 "R" 与所有操作均一致。前两次操作后颜色分别变为 "Y"、"B"。最后一次混合 "B" 得到蓝色。 对于第四个测试用例,答案 ".RY" 与所有操作均一致。前两次混合分别为 "R" 和 "Y",结果分别为红和黄。接下来的三次操作后,调色板依次变为 ".YR"、".YB"、".BY"。最后三次混合操作与调色板一致。 由 ChatGPT 4.1 翻译