Codeforces Round #546 (Div. 2) C. Nastya Is Transposing Matrices
链接:https://codeforces.com/contest/1136/problem/C
题意:
给两个矩阵,求能否通过矩阵转置从第一个矩阵变成第二个矩阵。
转置即i变成j。
思路:
因为无论怎么转,只要对角线上的各个值没有改变,即可以。
比赛的时候没想完全,一直把值加起来。。。
代码:
#include <bits/stdc++.h>
using namespace std;
typedef long long LL;
const int MAXN = 500 + 10;
int a[MAXN][MAXN];
int b[MAXN][MAXN];
map<int, int> times[2 * MAXN];
int main()
{
int n, m;
int flag = 1;
scanf("%d%d", &n, &m);
for (int i = 1;i <= n;i++)
{
for (int j = 1; j <= m; j++)
{
scanf("%d", &a[i][j]);
times[i + j - 1][a[i][j]]++;
}
}
for (int i = 1;i <= n;i++)
{
for (int j = 1; j <= m; j++)
{
scanf("%d", &b[i][j]);
if (times[i + j - 1][b[i][j]] <= 0)
flag = 0;
times[i + j - 1][b[i][j]]--;
}
}
if (flag)
printf("YES\n");
else
printf("NO\n");
return 0;
}
转载于//www.cnblogs.com/YDDDD/p/10516010.html
还没有评论,来说两句吧...