众所周知,这是一道签到题
原式子可以化为: =
可把看作一个整体
判断是否矛盾即得答案
#include<bits/stdc++.h> using namespace std; int n; int a[10005][10005]; int c[10005][10005]; int k[10005]; void work() { cin>>n; memset(k,0,sizeof(k)); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ scanf("%d",&a[i][j]); k[i]^=a[i][j]; } for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) scanf("%d",&c[i][j]); for(int j=1;j<=n;j++){ int flag=-1,t; for(int i=1;i<=n;i++){ t=c[i][j]^k[i]; if(flag==-1) flag=t; else if(flag!=t) { puts("NO"); return; } } } puts("YES"); return; } int T; int main() { cin>>T; while(T--) work(); return 0; } /* */