AcWing 3732. 矩阵复原
原题链接
中等
作者:
小明_3
,
2021-08-20 12:31:54
,
所有人可见
,
阅读 196
题目描述
- 矩阵复原
这道题是我们要还原出原来的矩阵 我们当以每行的信息从左到右的时候 哦我们记录对应每个数的列坐标 然后当每列从上到下的时候 我们记录对应的每个数的横坐标 最后将我们所对应坐标对应到每个数上 按照坐标输出即可
因为每个数都不重复 用p[N]数组记录每个x对应的列坐标
C++ 代码
#include<iostream>
using namespace std;
const int N =510;
int p[N*N];
int a[N][N];
int main()
{
int T; cin>>T;
while(T--)
{
int n,m;
cin>>n>>m;
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
int x; cin>>x;
p[x]=j;
}
for(int i=1;i<=m;i++)
{
int x;
cin>>x;
int k=p[x];
a[1][k]=x;
for(int j=2;j<=n;j++)
{
int x; cin>>x;
a[j][k]=x;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
cout<<a[i][j]<<" ";
}
cout<<endl;
}
}
return 0;
}