CF1586I Omkar and Mosaic

题目描述

Omkar 正在用彩色方块瓷砖制作马赛克,他将这些瓷砖放置在一个 $n \times n$ 的网格中。当马赛克完成时,网格中的每个格子都会放置一块“glaucous”或“sinoper”瓷砖。然而,目前他只在部分格子中放置了瓷砖。 一个完成的马赛克当且仅当每一块瓷砖恰好与 $2$ 块相同颜色的瓷砖相邻(如果两块瓷砖有公共边,则认为它们相邻),才被称为“mastapeece”。Omkar 想要填满剩下的瓷砖,使得整个马赛克成为一个“mastapeece”。现在他想知道,是否存在唯一的填充方式,如果存在,具体方案是什么?

输入格式

第一行包含一个整数 $n$($1 \leq n \leq 2000$)。 接下来有 $n$ 行,每行包含 $n$ 个字符。第 $i$ 行第 $j$ 个字符表示网格第 $i$ 行第 $j$ 列的格子,如果该格子已经放置了 sinoper 瓷砖,则为 $S$,如果放置了 glaucous 瓷砖,则为 $G$,如果为空则为 $.$。

输出格式

第一行输出 UNIQUE,如果存在唯一的填充方式使其成为“mastapeece”;如果无法填充使其成为“mastapeece”,输出 NONE;如果存在多种填充方式,输出 MULTIPLE。所有字母均需大写。 如果你输出了 UNIQUE,则接下来输出 $n$ 行,每行 $n$ 个字符,表示填充后的“mastapeece”,第 $i$ 行第 $j$ 个字符为 $S$ 表示 sinoper,$G$ 表示 glaucous。

说明/提示

对于第一个测试用例,Omkar 可以制作如下两种“mastapeece”: SSSS SGGS SGGS SSSS 以及 SSGG SSGG GGSS GGSS 对于第二个测试用例,可以证明 Omkar 无法填充出任何“mastapeece”。 对于第三个测试用例,可以证明给定的“mastapeece”是唯一的填充方案。 对于第四个测试用例,显然无论如何填充,唯一的瓷砖都无法与两块相同颜色的瓷砖相邻,因为它总共最多只有 $0$ 个相邻瓷砖。 由 ChatGPT 4.1 翻译