#864. 重涂网格
重涂网格
题目描述
给定一个 行 列的网格,初始时所有格子都是白色的。记第 行第 列的格子为 。
你可以执行以下操作任意次(包括 次):
- 选择两个水平或垂直相邻的格子,并将它们涂成黑色。已经涂成黑色的格子可以被重复涂色,其颜色保持黑色不变。
现在给定一个目标状态,由字符矩阵 表示:如果 是 #,则目标状态下格子 必须是黑色;如果 是 .,则目标状态下格子 必须是白色。
请判断是否有可能通过若干次上述操作,将网格涂成目标状态。
输入格式
第一行包含两个整数 —— 分别表示网格的行数和列数。
接下来 行,每行包含一个长度为 的字符串,其中第 行的第 个字符 表示格子 的目标颜色。
输出格式
如果能够达到目标状态,输出 Yes;否则输出 No。
样例输入 1
3 3
.#.
###
.#.
样例输出 1
Yes
样例输入 2
5 5
#.#.#
.#.#.
#.#.#
.#.#.
#.#.#
样例输出 2
No
样例输入 3
11 11
...#####...
.##.....##.
#..##.##..#
#..##.##..#
#.........#
#...###...#
.#########.
.#.#.#.#.#.
##.#.#.#.##
..##.#.##..
.##..#..##.
样例输出 3
Yes
说明
样例解释
-
在第一个样例中,可以分别选择 与 、 与 、 与 、 与 进行涂色操作(多次操作会覆盖中心的黑点),从而得到符合目标的图案。

-
在第二个样例中,所有的目标黑点均互相孤立,而每次操作只能同时涂黑相邻的两个格子,因此不可能在不涂黑目标为白色的格子的前提下将黑点涂满。
数据范围
- 对于所有测试点,保证 。
- 保证所有的 均为
.或#。