BestCoder Round #81 (div.2) B Matrix

时间:2023-03-09 03:39:36
BestCoder Round #81 (div.2) B Matrix

B题。。。水题,记录当前行是由原矩阵哪行变来的。

 #include<cstdio>
#include<cstring>
#include<cstdlib>
#include<iostream>
#include<queue>
#include<stack>
#include<cmath>
#include<algorithm>
#include<malloc.h>
using namespace std;
#define clc(a,b) memset(a,b,sizeof(a))
#define inf 0x3f3f3f3f
const int N=;
#define LL long long
const double eps = 1e-;
const double pi = acos(-);
int g[][];
inline int r(){
int x=,f=;char ch=getchar();
while(ch>''||ch<''){if(ch=='-') f=-;ch=getchar();}
while(ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} int lx[],ly[]; int main(){
int T;
// scanf("%d",&T);
T=r();
while(T--){
int n,m,q;
// scanf("%d%d%d",&n,&m,&q);
n=r(),m=r(),q=r();
for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
g[i][j]=r();
}
}
for(int i=;i<=n;i++)
lx[i]=i;
for(int j=;j<=m;j++)
ly[j]=j;
while(q--){
int a,x,y;
a=r(),x=r(),y=r();
if(a==){
int a=lx[x];int b=lx[y];
lx[x]=b,lx[y]=a;
}
else if(a==){
int a=ly[x];int b=ly[y];
ly[x]=b,ly[y]=a;
}
else if(a==){
for(int i=;i<=m;i++)
g[lx[x]][i]+=y;
}
else {
for(int i=;i<=n;i++){
g[i][ly[x]]+=y;
}
}
}for(int i=;i<=n;i++){
for(int j=;j<=m;j++){
if(j==)
printf("%d",g[lx[i]][ly[j]]);
else printf(" %d",g[lx[i]][ly[j]]);
}
printf("\n");
}
}
return ;
}