CodeForces 222B Cosmic Tables :一个矩阵对它进行k次操作,交换行、列,询问i行j列的数值:技巧
不去实际上交换行和列=
用两个数组表示当前行/列是原数组哪一行/列,这样只用交换变量
1 #include<stdio.h> 2 #include<string.h> 3 #include<algorithm> 4 using namespace std; 5 int a[1005][1005],idx[1005],idy[1005]; 6 int main() 7 { 8 int n,m,k,i,j,x,y; 9 char c; 10 scanf("%d%d%d",&n,&m,&k); 11 for (i=1;i<=n;i++) 12 for (j=1;j<=m;j++) scanf("%d",&a[i][j]); 13 for (i=1;i<=n;i++) idx[i]=i; 14 for (i=1;i<=m;i++) idy[i]=i; 15 while (k--) 16 { 17 scanf("%*c%c%d%d",&c,&x,&y); 18 if (c=='r') swap(idx[x],idx[y]); 19 else if (c=='c') swap(idy[x],idy[y]); 20 else printf("%d\n",a[idx[x]][idy[y]]); 21 } 22 return 0; 23 }