Y2hlOTYw 是一名国际象棋爱好者。然而,他没有自己的棋盘。
一天,他得到了一张 行 列的黑白双色网格纸。这当然不会是一个标准的国际象棋棋盘,不过 Y2hlOTYw 可管不了这么多。他认为,如果所有同色格子通过上下左右相邻形成的每个连通块,其形状都必须是矩形,这张网格纸就能当成棋盘用。
现在 Y2hlOTYw 想让你帮忙判断一下,这张网格纸能不能当成棋盘用。
形式化地,设网格纸为 ,其中 和 为正整数。每个格子 被赋予一种颜色 。
两个格子 与 相邻当且仅当 。
对于固定的颜色 ,考虑子集 。在 上定义等价关系:两个格子等价当且仅当存在格子序列 使得每个格子都属于 ,且对于任意的 ()都有格子 与格子 相邻。每个等价类称为一个连通块。一个连通块是极大的,即不能通过添加任何相邻的同色格子而扩大。
一个格子集合 的形状被称为矩形,如果存在整数 和 使得:
现在需要判断:每一个连通块的形状,是否都是矩形。