只有当
A
i
,
j
x
o
r
B
i
,
j
=
1
A_{i,j} \ \ \ \ xor \ \ \ B_{i,j} =1
Ai,jxorBi,j=1时才需要变化矩阵
如果每一行或每一列的异或和为奇数显然不可行
判断一下即可
c
o
d
e
code
code
#include<bits/stdc++.h>usingnamespace std;#define maxn 505template<typename T>inlinevoidread(T &s){
s =0;
T w =1, ch =getchar();while(!isdigit(ch)){if(ch =='-') w =-1; ch =getchar();}while(isdigit(ch)){ s =(s <<1)+(s <<3)+(ch ^48); ch =getchar();}
s *= w;}int n, m;int nx[maxn], ny[maxn];int a[maxn][maxn], b[maxn][maxn], c[maxn][maxn];intmain(){read(n),read(m);for(int i =1; i <= n;++i)for(int j =1; j <= m;++j)read(a[i][j]);for(int i =1; i <= n;++i)for(int j =1; j <= m;++j)read(b[i][j]);for(int i =1; i <= n;++i)for(int j =1; j <= m;++j)
c[i][j]= a[i][j]^ b[i][j];for(int i =1; i <= n;++i){for(int j =1; j <= m;++j){
nx[i]+= c[i][j];
ny[j]+= c[i][j];}}for(int i =1; i <= n;++i)if(nx[i]&1){puts("NO");return0;}for(int i =1; i <= m;++i)if(ny[i]&1){puts("NO");return0;}puts("YES");return0;}