题目描述
景驰公司自成立伊始,公司便将“推动智能交通的发展,让人类的出行更安全,更高效,更经济,更舒适”作为公司使命,通过产业融合、建设智能汽车出行行业的方式,打造“利国、利民、利公司、利个人”的无人驾驶出行系统。公司的愿景是成为中国第一、世界一流的智能出行公司。
有一天,景驰公司的工程师在真车上做测试。     景驰公司的试验车上面有一个奇怪的图案,这是一个n*m的矩阵,这辆车可以到处开,每次可以左旋右旋,小明想知道转完之后的图案是怎么样的    
         具体来说:有一个n*m的字符矩阵,只包含3种字符(‘+’‘-’,‘|’),通过一通乱旋之后变成什么样子?    
  输入描述:
第一行测试样例数T(0<T<=100) 每个测试样例第一行两个正整数n,m(0<n,m<=30) 接下来的n行是一个n*m的字符矩阵 字符矩阵之后是一串只包含‘L’(左旋)和‘R’(右旋)的字符串,长度不超过1000 每个样例间输出一个空行
输出描述:
第一行两个正整数n,m 接下来的n行是一个n*m的字符矩阵 每个样例后面输出一个空行
   示例1  
  输入
2 2 3 +-+ |+| LLRRR 3 2 -+ +| -+ LLL
输出
3 2 -+ +| -+ 2 3 |+| +-+
备注:
左旋即逆时针旋转,右旋即顺时针旋转 -通过一次左旋或右旋会变成| |通过一次左旋或右旋会变成-
方法:旋转后有四种类型,将每种类型都列出来
#include <stdio.h> #include <math.h> #include <iostream> using   namespace   std; int   main() {       char   ch[50][50] , wq[50][50];       int   n, m , T;       scanf  (  "%d"   , &T);       while  (T--)       {           string s;           int   ans = 0 ;           int   a = 0 , b = -1;           scanf  (  "%d %d"   , &n , &m);           for  (  int   i = 0 ; i < n ; i++)           {               b++;               for  (  int   j = 0 ; j < m ; j++)               {                   cin >> ch[i][j];                   wq[a][b] = ch[i][j];                   a++;               }               a = 0;           }           cin >> s;           for  (  int   i = 0 ; i < s.length() ; i++)           {               if  (s[i] ==   'L'  )               {                   ans--;               }               else   if  (s[i] ==   'R'  )               {                   ans++;               }           }           if  (ans < 0)           {               ans+=400;               ans = ans %4;                         }           else           {               ans = ans%4;           } ans = ans +   '0'  ; //  printf("ans = %c\n" , ans); //cin >> ans; //ans += '0';               switch  (ans)               {                   case   '0'  :                       printf  (  "%d %d\n"   , n , m);                       for  (  int   i = 0 ; i < n ; i++)                       {                           for  (  int   j = 0 ; j < m ; j++)                           {                           cout << ch[i][j];                           }                           cout << endl;                       }                       break  ;                           case   '1'  :                               printf  (  "%d %d\n"   , m , n);                   for  (  int   i = 0 ; i < m; i++)                   {                       for  (  int   j = n-1 ; j >= 0; j--)                       {                               if  (wq[i][j] ==   '|'  )                               {                                   wq[i][j] =   '-'  ;                               }                               else   if  (wq[i][j] ==   '-'  )                               {                                   wq[i][j] =   '|'  ;                               }                               cout << wq[i][j];                       }                       cout << endl;                   }                   break  ;                       case   '2'  :                           printf  (  "%d %d\n"   , n , m);                       for  (  int   i = n-1 ; i >= 0 ; i--)                       {                           for  (  int   j = m - 1 ; j >= 0; j--)                           {                           cout << ch[i][j];                           }                           cout << endl;                       }                       break  ;                       case   '3'  :                           printf  (  "%d %d\n"   , m , n);                   for  (  int   i = m-1 ; i >= 0; i--)                   {                       for  (  int   j = 0 ; j < n; j++)                       {                               if  (wq[i][j] ==   '|'  )                               {                                   wq[i][j] =   '-'  ;                               }                               else   if  (wq[i][j] ==   '-'  )                               {                                   wq[i][j] =   '|'  ;                               }                               cout << wq[i][j];                       }                       cout << endl;                   }               }       cout << endl;           }       return   0 ; } 
京公网安备 11010502036488号