QWQ60分为什么不对啊…
  • 板块P1275 魔板
  • 楼主Amore_eterno
  • 当前回复1
  • 已保存回复1
  • 发布时间2022/9/1 21:31
  • 上次更新2023/10/27 12:51:35
查看原帖
QWQ60分为什么不对啊…
483749
Amore_eterno楼主2022/9/1 21:31
#include<bits/stdc++.h>
//#pragma GCC optimize(2)
//#pragma GCC optimize(3)
//#pragma GCC optimize("-Ofast")
#define ll long long
#define uint unsigned int
#define ull unsigned long long
#define ushort unsigned short
#define MAX(x,y) ((x>y)?x:y)
#define MIN(x,y) ((x<y)?x:y)
#define SWAP(x,y) x^=y;y^=x;x^=y
#define I using
#define AK namespace
#define IOI std
#define ByKonnyaku41377 return 0
const int MAXN=1e6;
const ll MOD=1e9+7;
I AK IOI;
ll Abs(ll a) {return a>=0?a:(~a)+1;}
ll gcd(ll a, ll b){return b?gcd(b,a%b):a;}
ll lcm(ll a, ll b){return a/gcd(a,b)*b;}
double HAILUN(double a, double b, double c){double P=(a+b+c)/2; return sqrt(P*(P-a)*(P-b)*(P-c));}
ll Qpow(ll a, ll b)   {ll base=a, re=1;while(b){if(b&1)re=(re*base)%MOD;base=(base*base)%MOD;b>>=1;}return re;}
ll Qtimes(ll a, ll b) {ll base=a, re=0;while(b){if(b&1)re=(re+base)%MOD;base=(base+base)%MOD;b>>=1;}return re;}
ll read() {ll x=0; bool f=1; char c=getchar();while(c>'9'||c<'0'){if(c=='-') f=0; c=getchar();}while(c<='9'&&c>='0')x=(x<<1)+(x<<3)+c-'0',c=getchar();return f?x:(~x)+1;}
void writ(ll x){if(x<0) {putchar('-');x=(~x)+1;}if(x>9)writ(x/10);putchar(x-x/10*10+48);}
/*void prepar(){}*/
int t;
int n, m;
int a[105][105];
int sz[105][105]; 
int b[105][105];
bool check(int k, int j) {
	for(int i=1; i<=n; ++i) {
		if(sz[i][k]!=b[i][j]) return 0;
	} return 1;
}
bool chck(int l) {
	for(int i=1; i<=n; ++i) 
	for(int j=1; j<=m; ++j) 
	sz[i][j]=a[i][j];
	for(int i=1; i<=n; ++i) swap(sz[i][1], sz[i][l]);
	for(int i=1; i<=n; ++i) {
		if(sz[i][1]!=b[i][1]) {
			for(int j=1; j<=m; ++j) sz[i][j]^=1;
		}
	}
	for(int j=2; j<=m; ++j) {
		bool flag=0;
		for(int k=j; k<=m; ++k) {
			if(check(k, j)) {
				for(int i=1; i<=n; ++i) swap(sz[i][j], sz[i][k]);
				flag=1; break;
			}
		}
		if(!flag) return 0;
	}
	return 1;
}
int main(){
	t=read();
	while(t--) {
		n=read(); m=read();
		for(int i=1; i<=n; ++i) 
		for(int j=1; j<=m; ++j) 
		a[i][j]=read();
		for(int i=1; i<=n; ++i) 
		for(int j=1; j<=m; ++j) 
		b[i][j]=read();
		bool flag=0;
		for(int i=1; i<=n; ++i) {
			if(chck(i)) {
				flag=1;
				break;
			}
		}
		if(flag) puts("YES");
		else puts("NO");
	}
	ByKonnyaku41377;
	/*ACdate:2022.9.1*/
}

https://www.luogu.com.cn/record/85655189

2022/9/1 21:31
加载中...