连接:Print Check
题意:n行m列的矩阵,有k次涂色,每一涂一行或者一列,求最后的涂色结果。
从数据的大小看,暴力肯定要TLE;
问题是如何存储数据。
首先:我们只要最后的涂色结果。
其次:没有必要用for每个数据涂一遍。
所以如果能一次直接涂一行就可以了;
#include <iostream> #include <cstdio> uising namespace std; #define N 5005 const int M = 1e9 +7; 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 = 1; i <= k; i++){ scanf("%d%d%d",&rc,&x,&a); if(rc == 1){ row[x] = a;rt[x] = i; } else { col[x] = a;ct[x] = i; } } for(int i = 1;i <= n; i++){ for(int j = 1;j <= m;j++){ printf("%d ",rt[i] < ct[j]?col[j]:row[i]); } printf(" "); } return 0; }