Codeforces 1136C - Nastya Is Transposing Matrices
题目链接:https://codeforces.com/problemset/problem/1136/C
题意:
给出 $n \times m$ 的矩阵 $A,B$,你可以对其中任意某个 $k \times k$ 的子矩阵进行转置操作。
问你是否能将 $A$ 变成 $B$。
题解:
不管我们如何进行转置,不难发现整个矩阵的任意一条反对角线上的元素构成的集合,都是不会变的。
而我们可以进一步得出结论,对于 $A,B$ 两个矩阵,只要满足任意一条反对角线上的它们的元素构成的集合相同,就能从 $A$ 变成 $B$。
这也很好证明,因为只要我每次都选取 $2 \times 2$ 的子矩阵进行转置,必然能将任意一条反对角线上的任意两个相邻的元素交换位置,而只要能随意交换相邻元素,任意一个序列就可以变成任意的另一个序列。
AC代码:
#include<bits/stdc++.h>
using namespace std;
const int K=;
int n,m;
vector<int> a[*K],b[*K];
int main()
{
ios::sync_with_stdio();
cin.tie(), cout.tie(); cin>>n>>m;
for(int i=,x;i<=n;i++) for(int j=;j<=m;j++) cin>>x, a[i+j].push_back(x);
for(int i=,x;i<=n;i++) for(int j=;j<=m;j++) cin>>x, b[i+j].push_back(x); bool ok=;
for(int k=;k<=n+m;k++)
{
sort(a[k].begin(),a[k].end());
sort(b[k].begin(),b[k].end());
for(int i=;i<a[k].size();i++) if(a[k][i]!=b[k][i]) ok=;
}
cout<<(ok?"YES":"NO")<<'\n';
}
Codeforces 1136C - Nastya Is Transposing Matrices的更多相关文章
- CF 1136C Nastya Is Transposing Matrices
题目链接:http://codeforces.com/problemset/problem/1136/C 题目分析 看了题目之后,第一想法:任意位置都可以倒置,要是枚举,铁定的超时.所以需要探索规律. ...
- Codeforces Round #546 (Div. 2) C. Nastya Is Transposing Matrices
C. Nastya Is Transposing Matrices time limit per test 1 second memory limit per test 256 megabytes i ...
- codeforces#1136 C. Nastya Is Transposing Matrices(找规律)
题意:给出两个n*m的矩阵,每次操作可以让一个正方形矩阵行列交换.问,在无限次操作下,第一个矩阵能否变成第二个矩阵 分析:先把操作限定在2*2的矩阵中.这样对角线上的元素就可以随意交换.也就是说,如果 ...
- Codeforces Round #546 C. Nastya Is Transposing Matrices
题面: 传送门 题目描述: 给出两个n x m的矩阵A,B.矩阵A可以把正方子矩阵进行"转置操作",问:可不可以对矩阵A进行多次这样的操作,使矩阵A变为矩阵B? 题目分析: 这 ...
- C. Nastya Is Transposing Matrices
链接 [https://codeforces.com/contest/1136/problem/C] 题意 给你两个规模一样的矩阵 问是否可以通过不断选取A矩阵的子"方正"转置得到 ...
- codeforces#1136E. Nastya Hasn't Written a Legend(二分+线段树)
题目链接: http://codeforces.com/contest/1136/problem/E 题意: 初始有a数组和k数组 有两种操作,一,求l到r的区间和,二,$a_i\pm x$ 并且会有 ...
- Codeforces 1136E - Nastya Hasn't Written a Legend - [线段树+二分]
题目链接:https://codeforces.com/problemset/problem/1136/E 题意: 给出一个 $a[1 \sim n]$,以及一个 $k[1 \sim (n-1)]$, ...
- Codeforces 1136D - Nastya Is Buying Lunch - [贪心+链表+map]
题目链接:https://codeforces.com/problemset/problem/1136/D 题意: 给出 $1 \sim n$ 的某个排列 $p$,再给出若干 $(x,y)$ 表示当序 ...
- [Codeforces 489E] Nastya and King-Shamans
[题目链接] http://codeforces.com/contest/992/problem/E [算法] 线段树 + 二分 时间复杂度 : O(NlogN^2) [代码] #include< ...
随机推荐
- NOIP2011普及组 瑞士轮
OJ地址: https://www.luogu.org/problemnew/show/P1309 http://bailian.openjudge.cn/practice/4031/ 总时间限制: ...
- linux中Ctrl+D,Ctrl+Z,Ctrl+C
1.用stty -a查看控制字符的终端配置 2. ctrl-c 是发送 SIGINT 信号.终止一个进程 ctrl-z 是发送 SIGSTOP信号,挂起一个进程;命令fg唤回进程. ctrl-d 不是 ...
- RobotFrameWork编写接口测试及如何断言
1. 前言 本篇是第一系列(Http接口自动化)的第五课程,如果对系列课程大纲不清楚的,可以查看<RobotFramework系列免费课程-开课了~>. 前面我们介绍了,在真正实施前,需先 ...
- np.percentile获取中位数、百分位数
给定一个递增数组a,求它的中位数. np.percentile(a,50) 中位数就是50%处的数字,也可以获得0%.100%处的数字,0%处的数字就是第一个数字,100%处的数字就是最后一个数字.1 ...
- Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer 关于Newtonsoft.Json,LINQ to JSON的一个小demo mysql循环插入数据、生成随机数及CONCAT函数 .NET记录-获取外网IP以及判断该IP是属于网通还是电信 Guid的生成和数据修整(去除空格和小写字符)
Visual Studio 2017 - Windows应用程序打包成exe文件(2)- Advanced Installer Advanced Installer :Free for 30 da ...
- 【转载】SpringCloud-Eurek 心跳阈值说明
在使用eureka过程中,查看监控界面,出现: EMERGENCY! EUREKA MAY BE INCORRECTLY CLAIMING INSTANCES ARE UP WHEN THEY'RE ...
- xz -d Python-3.4.7.tar.xz
xz -d Python-3.4.7.tar.xz------>Python-3.4.7.tar tar -xvf Python-3.4.7.tar
- idea maven 集成多模块 module
首先第一步创建 顶级项目 也就是父项目 在创面那部中 不管你勾不勾 create from 那个选项 都无所谓,最终创建的项目要全删的 ,只保留pom.xml 父项目结构 接下来 创建子项目 也是 ...
- HTML 09 web 内容与攻击技术
Servlet 改进 CGI 之前提及的 CGI, 由于每次接到请求, 程序都要跟着启动一次, 因此一旦访问量过大, web 服务器要承担低昂当大的负载, 而 servlet 运行在与 web 服务器 ...
- Ubuntu 16.04设置开机启动脚本的方法
需求:公司卡片机容量太小,只有100G,由于使用的人比较的多,开机使用后有时候就会出现磁盘空间占满数据写不进去的情况,影响工作进度,而且每次使用完都得关掉卡片机,所以就有必要写个清理磁盘的脚本,当卡片 ...