QOJ.ac

QOJ

実行時間制限: 30 s メモリ制限: 1024 MB 満点: 28

#12090. 二重平铺

統計

你的游戏公司刚刚订购了大量带有 64 个空白单元格的正方形游戏板,原本打算将其制作成棋盘,但你的老板突然宣布国际象棋已经过时了。为了充分利用这些棋盘,你设计了一种使用“板块”(tiles)的新谜题。

板块是一组连通的单元格,通过边与边相连,且可以放入 $3 \times 3$ 的单元格正方形内。例如,以下是有效板块的示例(每个 @ 表示板块的一部分,额外的 . 字符用于填充):

... @@@ @@@ .@@
... @@@ @.@ @.@
.@. @@@ @.. @@@

以下板块则不是有效的:

@@. @.@ .@@.
... .@. @@@@
.@@ @.@ .@@.

当你的新谜题的解题者在棋盘上放置一个板块时,其单元格必须精确覆盖棋盘上尚未被其他板块覆盖的单元格。即使经过任意平移、旋转(90 度的倍数)和/或翻转,板块仍被视为同一种类型,解题者在放置时可以对板块进行上述任何操作。例如,以下所有形状都被视为同一种板块(该板块还存在其他变体):

.@. ..@ @.. ... @@.
@@. .@@ @@. .@@ .@@
@.. .@. .@. @@. ...

为了制作谜题,你需要将棋盘上的一个或多个单元格涂成红色。解题者通过在棋盘上放置板块来解决谜题,使得所有红色单元格都被覆盖,且没有其他单元格被覆盖。为了节省制造成本,解题者只收到一种类型的板块,但他们会得到足够数量的该板块副本,以覆盖所有的红色单元格。

你的任务是决定将棋盘上的哪些单元格涂成红色。不幸的是,你的老板还在决定游戏最终使用哪两种特定板块中的哪一种。你不想再等下去了,所以你决定尝试涂色一组单元格,使得无论最终使用哪种板块,谜题都能被解开。

输入格式

输入的第一行给出测试用例的数量 $T$。接下来是 $T$ 个测试用例,每个用例包含四行。前三行每行包含三个字符,接着是一个空格,再接着三个字符。第四行是一个空行。

观察整个用例时,空格字符将左侧的 $3 \times 3$ 网格和右侧的 $3 \times 3$ 网格分隔开。每个网格代表一个框架,其中显示了两种板块中的一种。在每个网格中,每个字符要么是 @(表示该单元格是板块的一部分),要么是 .(表示该单元格不是板块的一部分)。注意,这些 . 单元格与谜题或棋盘无关,仅作为填充以使板块形状清晰。保证题目中给出的两个板块是不相同的。

输出格式

对于每个测试用例,输出一行 Case #x: y,其中 $x$ 是测试用例编号(从 1 开始),如果问题有解,则 $y$ 为 POSSIBLE,否则为 IMPOSSIBLE。如果存在解,则再输出八行,每行十七个字符,形成两个 $8 \times 8$ 的网格,中间用一列空格隔开。每个网格必须使用点号 . 表示空白单元格,或使用以下 64 个字符集中的字符来表示谜题解法中使用的各个板块:

!?0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ

在每个 $8 \times 8$ 网格内,每个非点号字符必须表示同一个板块的一部分,不同的字符必须表示不同的板块。左侧网格中的每个板块必须与输入中左侧的板块相同(在旋转、平移和翻转意义下)。右侧网格中的每个板块必须与输入中右侧的板块相同(在旋转、平移和翻转意义下)。两个 $8 \times 8$ 网格中非点号单元格的集合必须相同,且不能为空。

如果存在多个有效解,你可以输出其中任意一个。

数据范围

$T = 595$。(包含所有可能的测试用例,同构意义下。) 时间限制:30 秒。 内存限制:1GB。 输入中每个板块的单元格通过边与边连接形成一个单一的连通组。 输入中的两个板块不相同。

样例

输入 1

4
.@@ .@.
.@. .@.
.@@ @@.

@@@ @@@
@.@ @@@
@@@ @@@

.@. ...
@@. .@@
@.. ...

... ..@
... ..@
@.. ...

输出 1

Case #1: POSSIBLE
....11.. ....11..
...221.. ...221..
...211.. ...321..
...22... ...32...
.333.... .433....
4343.... 5444....
444..... 555.....
........ ........
Case #2: IMPOSSIBLE
Case #3: POSSIBLE
........ ........
..T..I.. ..T..I..
.TT..II. .tT..Ii.
.T....I. .t....i.
........ ........
.LL..EE. .LL..EE.
..LLEE.. ..llee..
........ ........
Case #4: POSSIBLE

说明

样例输出展示了针对样例用例的一组答案。其他答案也可能是可能的。

在样例 #2 中,不存在一组红色的单元格,使得无论选择哪种板块,谜题都能被解开。

在样例 #3 和 #4 中,注意所选的红色单元格集合不需要是连通的。还要注意,输入中用于表示板块的 . 字符不被视为板块的一部分,在创建谜题时没有意义。例如,对于以下输入,给出的答案也是可以接受的:

... ...
.@. .@.
... .@.

此外,该输入与样例 #4 同构,不会与样例 #4 出现在同一个测试集中。

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.