CirnoNine 做了一个梦,在梦里她作了一幅美妙绝伦的画。但是她醒来后却忘记了梦的细节。她依稀记得她在梦中作出的画的形状,并确信自己是一笔就画成的天才,但她忘记了画笔的大小。
每个测试文件均包含多组测试数据。第一行输入一个整数
代表数据组数,每组测试数据描述如下:
第一行输入两个整数
,表示矩阵的行数和列数。
此后
行,第
行输入一个长度为
,仅由字符
和
构成的字符串
,表示矩阵的第
行。其中,字符
表示第
行第
列是黑色的,字符
代表白色。数据保证画布上至少存在一个
。
除此之外,保证单个测试文件的
之和不超过
。
对于每一组测试数据,新起一行输出一个整数,表示最大可行的
(若不存在任何可行的
,则输出
)。
6 2 2 11 01 3 3 110 111 111 2 3 110 101 3 3 010 111 010 10 10 1110000000 1110000000 1110000000 1111111111 1111111111 1111111111 0000000111 0000000111 0000000111 0000000111 3 3 011 111 110
对于第一组测试数据,黑格为
、
、
。当
时,把每个黑格看成一个
方块。可以取路径
,相邻坐标曼哈顿距离均为
,且三个
方块的并集恰好是矩阵中所有的
,因此
可行。
对于第二组测试数据,所有合法的
全
方块的左上角是
、
、
。它们可以按路径
串联,且它们对应的
方块覆盖的格子集合恰好是矩阵中所有的
,因此
可行。
对于第三组测试数据,可以证明无法一笔画完这幅图,不存在可行的
。
对于第四组测试数据,最大的可行的
。下面是作画过程,绿色为当前绘制的左上角格子,深蓝色为左上角格子形成的路径:
对于第五组测试数据,最大的可行的
。下面是作画过程,绿色为当前绘制的左上角格子,深蓝色为左上角格子形成的路径,浅蓝色为涂黑的正方形:
在几乎全部的情况下,PyPy 的运行速度优于 Python,我们建议您选择对应版本的 PyPy 进行提交、而不是 Python。