T431834 [TESTCL-002] Nonogram
题目背景
Test : SeeOnly
该题目仅供讨论使用,并无标准配备的测试点.
Nonogram 是一种引人入胜的拉丁图画游戏,其历史至少可以追溯到18世纪. 它是在一个全是空白方格的区域内,通过解读一系列线索数而涂黑特定位置的空格. 在此过程中,一幅隐藏的图画将会逐渐呈现在你面前——因此也可以说成是数字解谜涂画. 每一个 Nonogram 题目,都是一幅风格独特的艺术作品.
题目描述
一个 Nonogram 谜题包含一个 $m*n$ 大小的空白方格矩阵,以及在表格每一行右侧、每一列下方的一组线索数. 每组都有一个或多个数字,这些数字就是解题的线索.
要想解开 Nonogram 谜题,要做的就是解读这些线索数,并把与之对应的空格涂黑. 线索数会提示你要在对应的行或者列涂黑多少个空格,而题目的难度就在于,你需要自己确认哪些空格应该涂黑.
下面是 Nonogram 中线索与方格的对应关系:
1. 线索中的数字总数等于该行列涂黑的方格数
1. 线索中的每个数字表示该行一段连续涂黑的方格数
1. 线索中的数字出现顺序与方格中连续涂黑的方格段出现顺序相对应
如 (用 1 表示涂黑)
` 1 0 0 1 0 0 1 1 1 0 1 1 0 0 1 1 0 `
其对应的线索数为
` 1 1 3 2 2`
分别表示从左到右的连续涂黑方格段的格子个数
现在的问题是,给你一个 Nonogram 的每一行,每一列的线索,请你求出有哪些方格被涂黑了.
输入格式
第一行两个整数 $m,n$ ,表示 Nonogram 的尺寸
第 $1 $ 至 $ m+1$ 行从上至下描述每个横行的线索.
第 $m+2 $ 至 $ n+m+2$ 行从左至右描述每个竖列的线索.
每行对线索的描述都用 $0$ 结尾.
输出格式
一个 $m \times n$ 的矩阵,每个数用空格分开,每行末尾输出换行符,对于每个格子,涂黑输出 $1$ ,否则输出 $0$.若无解只需输出一个 $-1$.
说明/提示
本题采用 Special Judge. 对于可能存在的多组解,输出其中一组即可.
输入数据满足 $2 \le m,n \le 30$ .