#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef long long ll;
const int N=5e3+40;
const ll inf=1<<30;
int g[N][N];
int r[N],c[N];// row[i]的颜色
int op1[N],op2[N];
int main()
{
int n,m,k;
cin>>n>>m>>k;
memset(op1,0,sizeof(op1));
memset(op2,0,sizeof(op2));
for(int i=1;i<=k;i++)
{
int op,x,y;
scanf("%d%d%d",&op,&x,&y);
if(op==1)
{
r[x]=y;
op1[x]=i;
}
else
{
c[x]=y;
op2[x]=i;
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
// g[i][j] 被r和c都涂过 应该选择最新的一次
if(r[i]&&c[j])
{
if(op1[i]>op2[j])
printf("%d",r[i]);
else
printf("%d",c[j]);
}
else
{
if(r[i])
printf("%d",r[i]);
else if(c[j])
printf("%d",c[j]);
else
printf("0");
}
if(j==m)
printf("\n");
else
printf(" ");
}
}
return 0;
}
codeforces 631B Print Check模拟
最新推荐文章于 2022-10-05 16:50:02 发布
本文介绍了一种解决颜色覆盖问题的方法,通过记录行和列的颜色更新操作,最终确定每个单元格的颜色。使用C++实现,重点在于判断同一单元格被多次涂色时,如何选择最新的颜色。

244

被折叠的 条评论
为什么被折叠?



