Codeforces Round #344 (Div. 2) B. Print Check
题意:
给你一个n*m一开始全是0的矩阵,然后又q次询问
每次询问给你三个字母 op,a,b
将第a行变成b
将第a列变成b
然后让你输出Q次询问后,这个矩阵长什么模样
思路:每个格子记录两个状态,区分横竖。
1 #include<cstdio> 2 #include<cstring> 3 #include<algorithm> 4 #include<iostream> 5 #include<cstdlib> 6 #include<string> 7 #include<cmath> 8 #include<vector> 9 using namespace std; 10 const int maxn=1e5+7; 11 const double eps=1e-8; 12 const double pi=acos(-1); 13 #define ll long long 14 #define clc(a,b) memset(a,b,sizeof(a)) 15 const int MOD = 10000; 16 ll gra_a[5010][2]; 17 ll gra_b[5010][2]; 18 int main() 19 { 20 int n,m,k; 21 scanf("%d%d%d",&n,&m,&k); 22 clc(gra_a,0); 23 clc(gra_b,0); 24 for(int i=1; i<=k; i++) 25 { 26 int q,r; 27 ll a; 28 scanf("%d%d%I64d",&q,&r,&a); 29 r--; 30 if(q==1) 31 { 32 gra_a[r][0]=a; 33 gra_a[r][1]=i; 34 } 35 else 36 { 37 gra_b[r][0]=a; 38 gra_b[r][1]=i; 39 } 40 } 41 for(int i=0; i<n; i++) 42 { 43 for(int j=0; j<m; j++) 44 { 45 if(gra_a[i][1]>gra_b[j][1]) 46 printf("%I64d ",gra_a[i][0]); 47 else 48 printf("%I64d ",gra_b[j][0]); 49 } 50 printf("\n"); 51 } 52 return 0; 53 }