题目翻译

题目描述

今天,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;
}