#bitflyer2018finalf. [bitflyer2018_final_f]配信パズル
[bitflyer2018_final_f]配信パズル
问题描述
顺势君打算在连续 天内,每天解决以下类型的谜题。
- 每天,在顺势君拥有的设备上,都会接收到一个由 行、 列组成的棋盘的网格图。每个小方格都被涂成白色或黑色。然而,第 天 () 接收到的棋盘与前一天所接收到的棋盘是相同的,只是在第 天所接收到的棋盘的第 行、第 列的小方格的颜色反转了。
- 对于接收到的棋盘,顺势君可以最多进行 次操作:选择一个矩形区域内的所有小方格,并将这些小方格的颜色反转。
- 然后,顺势君可以选择一行或一列,并对该行或列中的所有小方格进行任意次数的颜色反转操作。
- 目标是将棋盘上的所有小方格都变成相同的颜色。
由于顺势君非常聪明,他意识到有一些棋盘是绝对无法解决的。因此,请代表顺势君判断对于每一天的棋盘,是否存在将所有小方格变成相同颜色的方法。
注意,第 天所接收到的棋盘的第 行 ()、第 列 () 的小方格的颜色由 决定,其中当 是 .
时小方格是白色,而当 是 #
时小方格是黑色。
约束条件
- 是
.
或#
输入
从标准输入中按以下格式输入数据。
: :
输出
输出 行。第 行()表示第 天的棋盘是否存在一种方法可以将所有小方格变成相同颜色。如果存在,输出 Yes
;否则输出 No
。
示例 1
3 4 4
...#
.###
.#.#
3 1
2 4
2 2
输出 1
No
No
No
Yes
第 天的棋盘可以通过一种方法将所有小方格变成相同颜色。
...#
..#.
##.#
从这个棋盘出发,我们可以按照以下方式将所有小方格变成白色:
- 反转棋盘右下角的 行 列的矩形区域。
- 反转第 行的所有小方格。
- 反转第 列的所有小方格。
示例 2
4 4 5
####
####
....
####
2 2
3 2
2 3
3 3
输出 2
Yes
Yes
Yes
No
Yes