SP1270 PNTBYNUM - Paint By Numbers

题目描述

多年前,曾流行过一种叫做「数字填色」的手工艺术:你会拿到一幅线条图,图中的每个封闭区域里都有一个数字,该数字代表一种特定的颜色。下图展示了一个例子(左图是未完成的,右图是完成的): ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP1270/0c507355b60c22f161850e139bf162f80432190c.png)![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP1270/f8fc814ca9b99ea7c28ec02285443003d4e80005.png) (图片来源于 [ThisLife.org](http://thislife.org/paintings/)) 你需要解决的问题在某种程度上与此类似,但更具线性特点。 你将获得一个 $n \times m$ 的网格($1 \le n, m \le 20$)。不过,网格的信息并不是以通常的「数字填色」方式给出的,因为那样问题就太简单了。 相反,你需要根据提供的线索推断哪些单元格应该是空白的,哪些应该包含星号。你将得到 $n + m$ 个数字序列,分别对应每行和每列。每个序列表示每个连续星号块的长度。注意,两个连续的星号块之间至少要有一个空白点。 下面是一个例子,形状看起来像鱼: ![](https://cdn.luogu.com.cn/upload/vjudge_pic/SP1270/f3211a333dbb0e46e60148343562b2052e65c7d2.png) 有些数字填色图案可能不止一种解法。在本题中,你可以假设任何一个符合要求的解都是正确的。

输入格式

输入首先包含一个整数,表示测试用例的数量。每个测试用例由 $n + m + 2$ 行组成。测试用例的第一行是一个整数 $n$($1 \le n \le 20$),接着一行是整数 $m$($1 \le m \le 20$)。接下来的 $n$ 行中,每行由一组空格分隔的正整数构成,表示从上到下的 $n$ 行,每个序列以 0 结尾。接下来的 $m$ 行描述从左到右的 $m$ 列,格式同样是由数字序列构成。

输出格式

对于每个测试用例,输出 $n$ 行,每行包含 $m$ 个字符,用点(`.`)表示空白,用星号(`*`)表示星号单元。不同测试用例之间请用一个空行隔开。 **本翻译由 AI 自动生成**