P16096 [ICPC 2019 NAIPC] Busy Board

题目描述

还记得幼儿玩的忙碌板吗?上面有一排排不同形状的孔,可以把木桩敲进去。现在有一种新的电子版本。这块板由一个二维的钉板网格组成。板上的每个钉子可以处于 **上** 或 **下** 状态,但不能同时处于两种状态。你可以选择任意一个当前处于上的钉子,然后将其“敲下”。这样会将该钉子敲下,同时也会将其所在行和所在列中的所有其他钉子抬起(无论它们之前的状态如何)。你不能敲一个已经处于下的钉子(也许你可以敲,但不会产生任何效果)。那些可怜的孩子们永远无法同时让所有钉子都处于下状态! :::align{center} ![](https://cdn.luogu.com.cn/upload/image_hosting/m83wmp1u.png) ::: 这个例子展示了敲击右上角钉子时发生的变化。($\circ =$ 上,$\bullet =$ 下) 一位代课老师想给她的班级出个难题。她使用“教师模式”将板子设置成一种特定布局,然后问学生是否可以通过敲击某些(可能为零)钉子将板子变为另一种布局。 这对幼儿来说可能太难了,但也许你能解决。

输入格式

每个测试用例的第一行包含两个空格分隔的整数 $r$ 和 $c$($1 \leq r, c \leq 1{,}000$),表示板子的尺寸。 接下来的 $r$ 行,每行包含恰好 $c$ 个字符,仅由大写字母 **O**(表示钉子处于上状态)和大写字母 **X**(表示钉子处于下状态)组成,没有空格或其他字符。这是初始布局。 紧接着的 $r$ 行,每行包含恰好 $c$ 个字符,仅由大写字母 **O**(表示钉子处于上状态)和大写字母 **X**(表示钉子处于下状态)组成,没有空格或其他字符。这是目标布局。

输出格式

输出一个整数,如果可以从初始布局通过敲击钉子到达目标布局,则输出 $1$,否则输出 $0$。

说明/提示

翻译由 DeepSeek V3.2 完成