题目翻译
题目描述
今天,HH 正在使用一个n×n 矩阵。
矩阵的所有数字初始都是0,每次HH都会做以下事情之一:
1.使第k行的所有数字变成v
2.使第k列的所有数字变成v
现在 HH 想知道 q 个选项后的最终矩阵是什么。
输入描述:
第一行包含一个正整数T(1≤T≤10),表示有T个测试用例。 对于每个测试用例: 第一行包含两个正整数 n,q(1≤n≤500,1≤q≤2*10 5 ) - 矩阵的大小和选项的次数。
然后 q 行,每行包含三个整数 op,k,v(1≤op≤2,1≤k≤n,1≤v≤100)。
如果op=1,那么HH会将第k行的所有数字变成v
如果op=2,那么HH会将第k列的所有数字变成v
输出描述:
对于每个测试用例,你应该输出 n 行,每行 n 个数字,表示最终的矩阵,注意对于每一行,你应该在两 个数字之间打印一个空格。
示例 1
输入
1
3 3
1 2 3
2 2 1
1 1 3
输出
3 3 3
3 1 3
0 1 0
伟大的鲁迅先生曾经说过“直接模拟就行了”
无注释代码
#include<iostream>
using namespace std;
int a[505][505];
int main()
{
int T,n,q;
cin>>T;
while(T--){
cin>>n>>q;
for(int i=1;i<=q;i++){
int op,k,v;
cin>>op>>k>>v;
if(op==1){
for(int i=1;i<=n;i++)
a[k][i]=v;
}
if(op==2){
for(int i=1;i<=n;i++)
a[i][k]=v;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++)
cout<<a[i][j]<<" ";
puts("");
}
}
return 0;
}