博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj 1142 [POI2009]Tab 最小表示
阅读量:5010 次
发布时间:2019-06-12

本文共 1178 字,大约阅读时间需要 3 分钟。

[POI2009]Tab

Time Limit: 40 Sec  Memory Limit: 162 MB
Submit: 373  Solved: 167
[][][]

Description

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

Input

第一行正整数T(1≤T≤10)表示数据组数.
每组数据包括:第一行nm(1≤n,m≤1000)2个n行m列的整数矩阵,
元素绝对值均在10^6以内

Output

每组数据输出“TAK”/“NIE”表示能/不能.

Sample Input

2
4 3
1 2 3
4 5 6
7 8 9
10 11 12
11 10 12
8 7 9
5 4 6
2 1 3
2 2
1 2
3 4
5 6
7 8

Sample Output

TAK
NIE

HINT

 

Source

 

题解:如果可以知道两个矩阵的最小表示就可以比较是否相同了,现将最小的数放到最左上角,因为每个数不同

   然后,按照行的开头,再按第一行的各列来排序,就可以了,这样二维的位置,就已经被二维关键字排过了,是唯一的。

   然后比较即可,时间复杂度貌似是n^3的,但是过了。

1 #include
2 #include
3 #include
4 #include
5 #include
6 using namespace std; 7 8 const int N=1005; 9 10 int a[N][N],b[N][N],n,m;11 12 int read()13 {14 int x=0,f=1;char ch=getchar();15 while (ch<'0'||ch>'9'){
if(ch=='-')f=-1;ch=getchar();}16 while (ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}17 return x*f;18 }19 20 void work1()21 {22 int x,y,mn=1e7;23 for (int i=1;i<=n;i++)24 for (int j=1;j<=m;j++)25 if (a[i][j]

 

转载于:https://www.cnblogs.com/fengzhiyuan/p/8760215.html

你可能感兴趣的文章
Android框架之路——GreenDao3.2.2的使用
查看>>
类方法WCF学习笔记-KnowTypeAttribute用法
查看>>
平台程序微信平台开发应用的签名
查看>>
程序卡OK6410裸板更新程序_update
查看>>
MYSQL用户名:root
查看>>
JavaScript 开发规范要求
查看>>
Devstack 安装OpenStack Pike版本(单机环境)
查看>>
Javascript 函数初探
查看>>
类的定义、声明使用
查看>>
转载,gini系数代码对应的公式
查看>>
编译安装mysql-5.6.40
查看>>
年终总结
查看>>
初创互联网公司技术架构变迁之路
查看>>
【BZOJ 3676】 3676: [Apio2014]回文串 (SAM+Manacher+倍增)
查看>>
【网络流24题】No. 13 星际转移问题 (网络判定 最大流)
查看>>
解析$.grep()源码及透过$.grep()看(两次取反)!!的作用
查看>>
[模板] 字符串hash
查看>>
SGU438_The Glorious Karlutka River =)
查看>>
Linux集群及LVS简介
查看>>
简单几何(直线与圆的交点) ZOJ Collision 3728
查看>>