标签:题意 flag ble 代码 lag mes i++ 链接 fine
[https://codeforces.com/contest/1136/problem/C]
给你两个规模一样的矩阵
问是否可以通过不断选取A矩阵的子“方正”转置得到B矩阵
明确一点,那些i+j相等的位置一定是在某个子方正的斜对角上(右上往左下画线就知道),
而且这个斜对角的任意两个元素是一定可以通过一些转置互换,而且其他位置不变。
自己拿几个矩阵模拟就知道了
后面只需要对每个i+j相等的排序对比两个矩阵的就OK了
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main(){
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
//freopen("in.txt","r",stdin);
int n,m;
while(cin>>n>>m){
vector<int> v1[2*510],v2[2*510];
int x;
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>x;
v1[i+j].push_back(x);
}
for(int i=0;i<n;i++)
for(int j=0;j<m;j++)
{
cin>>x;
v2[i+j].push_back(x);
}
for(int i=0;i<m+n;i++)
{
sort(v1[i].begin(),v1[i].end());
sort(v2[i].begin(),v2[i].end());
}
bool flag=1;
for(int i=0;i<m+n;i++)
if(v1[i]!=v2[i]){
flag=0;
break;
}
if(flag) cout<<"YES\n";
else cout<<"NO\n";
}
return 0;
}
C. Nastya Is Transposing Matrices
标签:题意 flag ble 代码 lag mes i++ 链接 fine
原文地址:https://www.cnblogs.com/mch5201314/p/10518296.html