1. CodeForces 222B Cosmic Tables
数据量比较大,这里不能直接暴力,用行指针和列指针表示当前行列是原来的第几行第几列
#include <cstdio> #include <cstring> #include <iostream> using namespace std; const int N = 1005; int n ,m , k , row[N] , col[N] , a[N][N]; char s[5] ; int p1 , p2; int main() { // freopen("a.in" , "r" , stdin); while(scanf("%d%d%d" , &n , &m , &k) == 3) { for(int i=1 ; i<=n ; i++) for(int j =1 ; j<=m ; j++) scanf("%d" , &a[i][j]); int maxn = max(n , m); for(int i=1; i<=maxn ; i++) row[i] = i , col[i] = i; for(int i=1 ; i<=k ; i++){ scanf("%s%d%d" , s , &p1 , &p2); if(s[0] == 'g') printf("%d\n" , a[row[p1]][col[p2]]); else if(s[0] == 'c'){ int t = col[p1]; col[p1] = col[p2] , col[p2] = t; } else{ int t = row[p1]; row[p1] = row[p2] , row[p2] = t; } } } return 0; }