Piece it together
给定一个由 B、W 和 . 组成的字符矩阵。你需要判断能否使用若干个互不重叠的 L 形三格骨牌,恰好覆盖矩阵中的所有 B 格和 W 格。
每个骨牌占据 个格子:拐角格必须为 B,另外两个格子必须为 W。其中一个 W 格与 B 格水平相邻,另一个 W 格与 B 格竖直相邻。骨牌可以旋转,因此水平相邻的 W 格可以位于 B 格的左侧或右侧,竖直相邻的 W 格可以位于 B 格的上方或下方。
每个 B 格和 W 格都必须恰好被一个骨牌覆盖。骨牌之间不能重叠,也不能覆盖 . 格。
输入格式
第一行包含一个整数 ,表示测试用例的数量。
对于每个测试用例,第一行包含两个整数 和 ,分别表示矩阵的行数和列数。
接下来 行,每行包含一个长度为 的字符串,字符串仅由 B、W 和 . 组成。
输出格式
对于每个测试用例输出一行。如果能够按要求完成覆盖,输出 YES;否则输出 NO。
样例输入
2
3 4
BWW.
WWBW
..WB
3 3
W..
BW.
WBW
样例输出
YES
NO
数据范围
- ;
- ;
B表示黑色格,W表示白色格,.表示空格。
来源与许可
本题题面与测试数据整理自 BZOJ。
样例 1
输入
2
3 4
BWW.
WWBW
..WB
3 3
W..
BW.
WBW
输出
YES
NO