题目链接:Codeforces 631B Print Check
题意:给定一个
n∗m
的矩阵,有
q
次操作。初始矩阵元素均为
1xy
表示将第
i
行全变为y
输出最后的矩阵.
思路:用
AC
代码:
#include <iostream>
#include <cstdio>
#include <cstring>
#include <cstdlib>
#include <cmath>
#include <algorithm>
#include <vector>
#include <queue>
#include <map>
#define CLR(a, b) memset(a, (b), sizeof(a))
#define fi first
#define se second
using namespace std;
typedef long long LL;
typedef pair<int, int> pii;
const int MAXN = 5000+10;
pii row[MAXN], cul[MAXN];
int main()
{
int n, m, q; cin >> n >> m >> q;
for(int i = 1; i <= n; i++) row[i].fi = 0;
for(int i = 1; i <= m; i++) cul[i].fi = 0;
for(int i = 1; i <= q; i++)
{
int op, x, y;
cin >> op >> x >> y;
if(op == 1) {
row[x].fi = y;
row[x].se = i;
}
else {
cul[x].fi = y;
cul[x].se = i;
}
}
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= m; j++)
{
if(j > 1) cout << " ";
if(row[i].fi == 0 && cul[j].fi == 0) cout << 0;
else if(row[i].fi == 0) cout << cul[j].fi;
else if(cul[j].fi == 0) cout << row[i].fi;
else {
if(row[i].se > cul[j].se) cout << row[i].fi;
else cout << cul[j].fi;
}
}
cout << endl;
}
return 0;
}