P2927 [USACO08DEC] Jigsaw Puzzles S
题目描述
奶牛们开始玩字母拼图了。在这种拼图中,拼图有 $R$ 行、$C$ 列,其中 $1 \le R \le 10$,$1 \le C \le 10$。拼图块的边缘并不是奇形怪状的纸板形状,而是字母。
每个拼图块都有一个编号和 $4$ 条边,每条边是一个字母或边界。它们必须像普通拼图一样对齐。伪字母 `0`(数字 $0$)表示边界。一个拼图块可以有多条边界,例如角块会有两条边界;在类似 $4 \times 1$ 这样的拼图中,某些拼图块也可能有多条边界。
下面是一组由 $6$ 个拼图块组成的拼图,它们以一种方式(可能有很多种方式)拼成了完整的拼图:
```text
0 0 0
+---------+ +---------+ +---------+
| | | | | |
0 | 1 c c 3 d d 5 | 0
| | | | | |
+----d----+ +----a----+ +----e----+
+----d----+ +----a----+ +----e----+
| | | | | |
0 | 2 b b 4 b b 6 | 0
| | | | | |
+---------+ +---------+ +---------+
0 0 0
```
注意,每个拼图块的边缘字母都要与相邻拼图块对应边缘的字母匹配;边界必须正确地出现在拼图的上边、下边、左边和右边。
每个拼图块用一个编号和按顺时针顺序列出的四条边表示,其中边可以是字母 `a` 到 `z`,也可以是 `0`。拼图块在放入拼图时可能需要旋转。
给定一组拼图块,请找出至少一种把它们拼成完整拼图的方式。对于较大的 $R$ 和 $C$,测试数据会更容易解决,因为它们的边缘字母更加多样。
输入格式
第一行包含两个用空格隔开的整数 $R$ 和 $C$。
接下来 $R \times C$ 行,每行包含 $5$ 个用空格隔开的内容:一个整数编号,以及四个边标识符。
输出格式
输出 $R \times C$ 行。
第 $R \times (i - 1) + j$ 行描述放在第 $i$ 行第 $j$ 列的拼图块,格式为一个整数和四个用空格隔开的边标识符:拼图块的编号,以及按照上、右、下、左顺序给出的四条边。
说明/提示
输入中的拼图块与样例解相比,虽然有些发生了旋转,但它们描述的是同一个拼图。
如题面图示所示。其他解法也是可能的,例如镜像解;评测程序会检查你的答案。