logo AlgoBeat OnlineJudge
登录 注册

#216461. [XJTUPC 2026] 鲜艳 / 方格

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:VJudge(洛谷) 评测方式:VJudge
上传者: 匿名

题目描述

Y2hlOTYw 是一名国际象棋爱好者。然而,他没有自己的棋盘。

一天,他得到了一张 列的黑白双色网格纸。这当然不会是一个标准的国际象棋棋盘,不过 Y2hlOTYw 可管不了这么多。他认为,如果所有同色格子通过上下左右相邻形成的每个连通块,其形状都必须是矩形,这张网格纸就能当成棋盘用。

现在 Y2hlOTYw 想让你帮忙判断一下,这张网格纸能不能当成棋盘用。

形式化地,设网格纸为 ,其中 为正整数。每个格子 被赋予一种颜色

两个格子 相邻当且仅当

对于固定的颜色 ,考虑子集 。在 上定义等价关系:两个格子等价当且仅当存在格子序列 使得每个格子都属于 ,且对于任意的 )都有格子 与格子 相邻。每个等价类称为一个连通块。一个连通块是极大的,即不能通过添加任何相邻的同色格子而扩大。

一个格子集合 的形状被称为矩形,如果存在整数 使得:

现在需要判断:每一个连通块的形状,是否都是矩形。

输入格式

本题包含多组测试用例。输入的第一行,包含一个正整数 ),表示测试用例的数量。

接下来是 组测试用例的描述。

每个测试用例的第一行,包含两个整数 (),用一个空格分隔,表示网格纸有 列。

接下来 行,第 行包含一个长度恰为 的字符串 ,表示给定的网格纸。保证字符串 仅包含字符 。其中,对于任意的整数 ):

  • 若第 行第 个字符为 ,表示网格纸第 行第 列的格子 的颜色为黑色();
  • 若第 行第 个字符为 ,表示网格纸第 行第 列的格子 的颜色为白色()。

保证所有测试用例中 的总和不超过

输出格式

对于每个测试用例,输出一行,包含一个字符串:

  • 若这张网格纸能当成棋盘用,即每一个连通块的形状都是矩形,则输出
  • 否则,输出

答案对大小写不敏感。例如 都会被视为

样例

样例输入 1

4
2 3
110
110
4 3
110
111
111
111
5 5
00000
01110
01010
01110
00000
8 8
01010101
10101010
01010101
10101010
01010101
10101010
01010101
10101010

样例输出 1

Yes
No
No
Yes