zoukankan      html  css  js  c++  java
  • P3593 [POI2015]TAB

    题目描述

    给定两个 (n imes m) 的矩阵,保证同一个矩阵中元素两两不同。
    问能否通过若干次交换两行或交换两列把第一个矩阵变成第二个。

    能够通过若干次交换把第一个变成第二个,当且仅当在第一个矩阵中位于同一行同一列的数字在第二个矩阵中仍位于同一行同一列。

    Code

    #include<cstdio>
    #include<iostream>
    #include<cstring>
    #include<vector>
    #include<algorithm>
    using namespace std;
    const int N = 1010;
    const int S = N * N + 10;
    int a[N][N],p[S * 2][2];
    int n,m,T;
    int main(){
    	cin >> T;
    	while(T--){
    		cin >> n >> m;
    		for(int i = 1; i <= n; i++)
    			for(int j = 1; j <= m; j++){
    				scanf("%d",&a[i][j]);
    				p[a[i][j] + S][0] = i;
    				p[a[i][j] + S][1] = j;
    			}
    		for(int i = 1; i <= n; i++)
    			for(int j = 1; j <= m; j++)
    				scanf("%d",&a[i][j]);
    		int flag = 1;
    		for(int i = 1; i <= n; i++){
    			int fuck = p[a[i][1] + S][0];
    			for(int j = 1; j <= m; j++)
    				if(p[a[i][j] + S][0] != fuck) 
    					flag = 0;
    		}
    		for(int j = 1; j <= m; j++){
    			int fuck = p[a[1][j] + S][1];
    			for(int i = 1; i <= n; i++)
    				if(p[a[i][j] + S][1] != fuck) 
    					flag = 0;
    		}
    		if(flag) cout << "TAK" << endl;
    		else cout << "NIE" << endl;
    	}
    	return 0;
    }
    
  • 相关阅读:
    Fragment练习
    view有了父元素就不能再添加父元素
    margin与padding的不同
    BroadcastReceiver组件
    史上最著名的10个思想实验[转]

    godaddy域名空间购买波折
    碎片2
    程序员要多喝水
    google.com的首页换上了pc man游戏
  • 原文地址:https://www.cnblogs.com/FoxC/p/13583420.html
Copyright © 2011-2022 走看看