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;
    }
    
  • 相关阅读:
    乌龟git
    CI的model层的操作
    排序算法
    linux安装教程
    linux命令Netstat
    linux压缩和解压缩
    标准库模块time,datetime
    为什么计算机时间和众多编程语言要从1970年1月1日开始算起
    模块和包的导入
    Python封装应用程序的最佳项目结构是什么?
  • 原文地址:https://www.cnblogs.com/FoxC/p/13583420.html
Copyright © 2011-2022 走看看