题目链接:http://codeforces.com/problemset/problem/1136/C

题目分析

看了题目之后,第一想法:任意位置都可以倒置,要是枚举,铁定的超时。所以需要探索规律......

结果发现,任意的两个数,如果可以交换,其横纵坐标之和一定相同,所以我们只需要用一个数组存储横纵坐标相同的所以点的值,然后判断在的横纵坐标之和相同的情况下,这个数组中所含有的数是否完全一致,有一个数组中所含有的数不相同,那么肯定不满足条件。

代码区

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include <vector>
using namespace std;
typedef long long ll;
const int inf = 0x3f3f3f3f;
const int Max = 5e2 + 10;
const int mod = 1e9 + 7; int map1[2 * Max][Max]; //map[x][k],x表示横纵坐标之和为x,k表示第k个数,其中map[x][0]表示横纵坐标为x的点的总个数
int map2[2 * Max][Max]; bool cmp(int index)
{
for (int i = 1; i <= map1[index][0];i++)
{
if (map1[index][i] != map2[index][i])
return false;
}
return true;
} int main()
{
int n, m;
while (scanf("%d%d", &n, &m) != EOF)
{
memset(map1, 0, sizeof(map1));
memset(map2, 0, sizeof(map2));
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m;j++)
{
int x;
scanf("%d", &x);
map1[i + j][++map1[i + j][0]] = x;
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= m;j++)
{
int x;
scanf("%d", &x);
map2[i + j][++map2[i + j][0]] = x;
}
}
bool ok = true;
for (int i = 2; i <= n + m;i++)
{
sort(map1[i] + 1, map1[i] + 1 + map1[i][0]); //让序列有序
sort(map2[i] + 1, map2[i] + 1 + map2[i][0]);
if (!cmp(i))
{
ok = false;
break;
}
}
if (ok)
{
printf("YES\n");
}
else
{
printf("NO\n");
} }
return 0;
}

CF 1136C Nastya Is Transposing Matrices的更多相关文章

  1. Codeforces 1136C - Nastya Is Transposing Matrices

    题目链接:https://codeforces.com/problemset/problem/1136/C 题意: 给出 $n \times m$ 的矩阵 $A,B$,你可以对其中任意某个 $k \t ...

  2. 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 ...

  3. codeforces#1136 C. Nastya Is Transposing Matrices(找规律)

    题意:给出两个n*m的矩阵,每次操作可以让一个正方形矩阵行列交换.问,在无限次操作下,第一个矩阵能否变成第二个矩阵 分析:先把操作限定在2*2的矩阵中.这样对角线上的元素就可以随意交换.也就是说,如果 ...

  4. C. Nastya Is Transposing Matrices

    链接 [https://codeforces.com/contest/1136/problem/C] 题意 给你两个规模一样的矩阵 问是否可以通过不断选取A矩阵的子"方正"转置得到 ...

  5. Codeforces Round #546 C. Nastya Is Transposing Matrices

    题面: 传送门 题目描述: 给出两个n x m的矩阵A,B.矩阵A可以把正方子矩阵进行"转置操作",问:可不可以对矩阵A进行多次这样的操作,使矩阵A变为矩阵B?   题目分析: 这 ...

  6. CF 1136B Nastya Is Playing Computer Games

    题目链接:codeforces.com/problemset/problem/1136/B 题目分析 首先,读完题目,看了是个B题,嗯嗯...... 果断找规律,然后交了一波,居然过了!!! 代码区 ...

  7. CF 1136A 1136B 1136C 1136D 1136E(Round546ABCDE)题解

    题目地址:https://codeforces.com/contest/1136 A: Nastya Is Reading a Book 题解:挨个判断即可,水题. 参考代码: #include< ...

  8. Codeforces 1136 - A/B/C/D/E - (Done)

    链接:https://codeforces.com/contest/1136/ A - Nastya Is Reading a Book - [二分] #include<bits/stdc++. ...

  9. Codeforces Round #546 (Div. 2) 题解

    Codeforces Round #546 (Div. 2) 题目链接:https://codeforces.com/contest/1136 A. Nastya Is Reading a Book ...

随机推荐

  1. 关系型数据库(四),引擎MyISAM和InnoDB

    目录 1.MyISAM和InnoDB关于锁方面的区别是什么 2.MYSQL的两个常用存储引擎 3.MyISAM应用场景 4.InnoDB适合场景 四.引擎MyISAM和InnoDB 1.MyISAM和 ...

  2. 51 nod 1127最短的包含字符串(尺取法)

    1127 最短的包含字符串   收藏  关注 给出一个字符串,求该字符串的一个子串S,S包含A-Z中的全部字母,并且S是所有符合条件的子串中最短的,输出S的长度.如果给出的字符串中并不包括A-Z中的全 ...

  3. CodeForces 538F A Heap of Heaps

    题意 给定一个长度为n的数组A,将它变为一颗k叉树(1 <= k <= n - 1)(堆的形式编号). 问对于每一个k,有多少个节点小于它的父节点. 解题 显然,最初的想法是暴力.因为树的 ...

  4. [pytorch笔记] 调整网络学习率

    1. 为网络的不同部分指定不同的学习率 class LeNet(t.nn.Module): def __init__(self): super(LeNet, self).__init__() self ...

  5. 自动化部署脚本--linux执行sh脚本

    自动化部署脚本文件目录: 运行主程序:./install.sh #!/bin/bash SCRIPTPATH=$(cd "$(dirname "$0")"; p ...

  6. C++入门经典-例5.18-通过引用交换数值

    1:在C++中,函数参数的传递方式主要有两种,即值传递和引用传递.值传递是指在函数调用时,将实际参数的值赋值一份传递到调用函数中,这样如果在调用函数中修改了参数的值,其改变将不会影响到实际参数的值.而 ...

  7. 设置iterm可配色

    设置终端和ls可配色 终端输入vim ~/.bash_profile 添加如下export #enables colorin the terminal bash shell export export ...

  8. 【git】本地git bash连接远程库github

    重要参考: https://www.liaoxuefeng.com/wiki/896043488029600 https://segmentfault.com/a/1190000003728094 正 ...

  9. du和df目录大小不一致

    最近遇到个问题 df查看基本没有空间了 但是查找大文件 也基本没有 ,原来是之前的大文件删除了 没有生效导致的 用如下命令,查找到相关进程ID 然后kill就行了 lsof | grep delete ...

  10. D5(太长了md没写完)

    动态规划 三种常见实现方法 对于一个斐波那契数列,我们想要求第n项的值,就需要一项一项的递归来求 来看代码 f[o] = 0; f[1] = 1; for (int i = 2; i <= n; ...