AT_past202306_l ビット行列

题目描述

给定一个 $H \times W$ 的矩阵 $A$,其元素均为非负整数。 你可以进行如下任意次数(包括零次)的操作: - 选择一个整数 $i$,满足 $1 \leq i \leq H$,和一个非负整数 $X$,将第 $i$ 行的每个元素 $A_{i,j}$ 替换为 $A_{i,j}\ \mathrm{XOR}\ X$。 - 选择一个整数 $j$,满足 $1 \leq j \leq W$,和一个非负整数 $X$,将第 $j$ 列的每个元素 $A_{i,j}$ 替换为 $A_{i,j}\ \mathrm{XOR}\ X$。 同时,给定一个 $H \times W$ 的矩阵 $B$,其中元素为非负整数或者 $-1$。 请判断是否存在一系列操作,使得对于所有 $B_{i,j} \neq -1$ 的位置都有 $A_{i,j}=B_{i,j}$。 什么是 $\mathrm{XOR}$?非负整数 $A, B$ 的按位异或($\mathrm{XOR}$),记为 $A \oplus B$,定义如下: - 对于二进制表示中每一位 $2^k$($k \geq 0$),只有当 $A$ 和 $B$ 在该位上恰好有一个是 $1$ 时,该位在 $A \oplus B$ 中为 $1$,否则为 $0$。 例如,$3 \oplus 5 = 6$(二进制为:$011 \oplus 101 = 110$)。 一般来说,$k$ 个整数 $p_1, p_2, \dots, p_k$ 的按位异或被定义为 $(\dots ((p_1 \oplus p_2) \oplus p_3) \oplus \dots \oplus p_k)$,且可以证明其结果与异或的顺序无关。

输入格式

输入按如下格式从标准输入读入: > $H\ W$ > $A_{1,1}\ A_{1,2}\ \dots\ A_{1,W}$ > $A_{2,1}\ A_{2,2}\ \dots\ A_{2,W}$ > $\vdots$ > $A_{H,1}\ A_{H,2}\ \dots\ A_{H,W}$ > $B_{1,1}\ B_{1,2}\ \dots\ B_{1,W}$ > $B_{2,1}\ B_{2,2}\ \dots\ B_{2,W}$ > $\vdots$ > $B_{H,1}\ B_{H,2}\ \dots\ B_{H,W}$

输出格式

如果能够满足条件,输出 `Yes`,否则输出 `No`。

说明/提示

### 样例解释 1 初始时,$A$ 如下: ``` 1 2 3 4 ``` 对第二列进行 $X=1$ 操作后: ``` 1 3 3 5 ``` 再对第二行进行 $X=2$ 操作后: ``` 1 3 1 7 ``` 因此,可以得到满足条件的结果,输出 `Yes`。 ### 样例解释 2 本例无论如何操作都无法满足条件,应输出 `No`。 ### 数据范围 - $1 \leq H, W \leq 500$ - $0 \leq A_{i,j} < 2^{30}$ - $-1 \leq B_{i,j} < 2^{30}$ - 所有输入值均为整数。 由 ChatGPT 5 翻译