拼图
测试数据来自 system/1860
描述
小 Z 最近迷上了拼图游戏,然而智商有限,他总是无法拼出完整图案。游戏是这样的:首先小 Z 会得到一些拼图碎片,然后他试着重新排列这些碎片使得它们组成一个大小为 4 ∗ 4 的正方形。如下图。注意小 Z 不能旋转或者翻转这些碎片。
Image Lost
小 Z 得到如图 1 的碎片,然后经过重新排列得到图 2 的正方形。
由于小 Z 实在太笨了,聪明的你请写一个程序帮助他来解决这个问题吧。
格式
输入格式
输入包含多组数据,请使用 EOF。
每组数据的的第一行包含一个正整数 N,表示碎片的个数。接下来输入 N 个碎片。每个碎片的第一行是两个正整数 r 和c,表示这个碎片的行数和列数。接下来是 r 行,每一行包含 c 个字符 ’0’ 或 ’1’,’1’ 表示碎片占据这个位置,’0’ 表示该位置为空。数据保证每个碎片都是完整的一片(即 ’1’ 是相互连通的),并且没有行或者列全部为 ’0’。
输出格式
如果无法组成一个正方形,输出”No Solution”;如果有多组解,输出”Yes, many!”。否则,输出”Yes, only one!”,接下来输出一个 4 ∗ 4 的矩阵 H,\(H_{i,j}\)表示位置 i,j 的碎片编号。碎片编号从 1 开始。
样例1
样例输入1
4
2 3
111
101
4 2
01
01
11
01
2 1
1
1
3 2
10
10
11
4
1 4
1111
1 4
1111
1 4
1111
1 4
1111
4
1 4
1111
1 4
1111
1 4
1111
2 3
111
001
样例输出1
Yes, only one!
1112
1412
3422
3442
Yes, many!
No solution
限制
对于 30% 的数据,N < 5
对于 100% 的数据,N ≤ 16
信息
- ID
- 1885
- 难度
- (无)
- 分类
- (无)
- 标签
- (无)
- 递交数
- 0
- 已通过
- 0
- 通过率
- ?
- 上传者