存储构造题(Print Check)

时间:2021-02-20 08:08:53

连接:Print Check

题意:n行m列的矩阵,有k次涂色,每一涂一行或者一列,求最后的涂色结果。

从数据的大小看,暴力肯定要TLE;

问题是如何存储数据。

首先:我们只要最后的涂色结果。

其次:没有必要用for每个数据涂一遍。

所以如果能一次直接涂一行就可以了;

#include <iostream>
#include <cstdio>
uising namespace std;
#define N 5005
const int M = 1e9 +;
typedef long long LL;
int row[N],col[N];
int rt[N],ct[N];
int main(){
//freopen("in.txt","r",stdin);
//freopen("out.txt","w",stdout);
int n,m,k,x,a,rc;
cin>>n>>m>>k;
for(int i = ; i <= k; i++){
scanf("%d%d%d",&rc,&x,&a);
if(rc == ){
row[x] = a;rt[x] = i;
}
else {
col[x] = a;ct[x] = i;
}
}
for(int i = ;i <= n; i++){
for(int j = ;j <= m;j++){
printf("%d ",rt[i] < ct[j]?col[j]:row[i]);
}
printf("\n");
}
return ;
}