[POI 2009] TAB-Arrays

由于交换前后在同一行或同一列的元素还会在同一行或同一列
所以根据这个对于每个元素判断一下即可。

#include<bits/stdc++.h>
using namespace std;
const int p=1000000;
int t,n,m,a[1001][1001],b[1001][1001];
int x[4*p+1],y[4*p+1];
bool f;
int main(){
	ios::sync_with_stdio(0),cin.tie(0);
	cin>>t;
	while(t--){
		memset(x,0,sizeof(x));
		memset(y,0,sizeof(y));
		cin>>n>>m,f=1;
		for(int i=1;i<=n;i++)
			for(int j=1,t;j<=m;j++)
				cin>>t,t+=p,x[t]=i,y[t]=j;
		for(int i=1;i<=n;i++)
			for(int j=1,t;j<=m;j++){
				cin>>t,t+=p,b[i][j]=t;
				if(!x[t]||!y[t]||x[t]!=x[b[i][1]]||y[t]!=y[b[1][j]])f=0;
			}
		if(f)cout<<"TAK\n";
		else cout<<"NIE\n";	
	}
	return 0;
}
posted @ 2025-08-18 08:57  zhuoheng  阅读(5)  评论(0)    收藏  举报