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 翻译