• Transformations


    链接

    分析:根据操作模拟

      1 /*
      2     ID:wanghan
      3     PROB:transform
      4     LANG:C++
      5 */
      6 #include "iostream"
      7 #include "cstdio"
      8 #include "cstring"
      9 #include "string"
     10 #include "cmath"
     11 using namespace std;
     12 const int maxn=15;
     13 string s[maxn],solve[maxn];
     14 int n;
     15 bool Turn3(string str[],string val[]){
     16     char t[maxn][maxn];
     17     for(int i=0;i<n;i++){
     18         for(int j=0;j<n;j++){
     19             t[i][j]=s[j][n-1-i];
     20         }
     21     }
     22     /*for(int i=0;i<n;i++){
     23         for(int j=0;j<n;j++)
     24             cout<<t[i][j];
     25         cout<<endl;
     26     }
     27     cout<<endl;*/
     28     int flag=0;
     29     for(int i=0;i<n;i++){
     30         for(int j=0;j<n;j++)
     31             if(t[i][j]!=val[i][j]){
     32                 flag=1; break;
     33             }
     34         if(flag)  break;
     35     }
     36     if(flag)   return false;
     37     return true;
     38 }
     39 bool Turn2(string str[],string val[]){
     40     char t[maxn][maxn];
     41     for(int i=0;i<n;i++){
     42         for(int j=0;j<n;j++)
     43             t[i][j]=str[n-i-1][n-j-1];
     44     }
     45     /*for(int i=0;i<n;i++){
     46         for(int j=0;j<n;j++)
     47             cout<<t[i][j];
     48         cout<<endl;
     49     }
     50     cout<<endl;*/
     51     int flag=0;
     52     for(int i=0;i<n;i++){
     53         for(int j=0;j<n;j++)
     54             if(t[i][j]!=val[i][j]){
     55                 flag=1; break;
     56             }
     57         if(flag)  break;
     58     }
     59     if(flag)   return false;
     60     return true;
     61 }
     62 bool Turn1(string str[],string val[]){
     63     char t[maxn][maxn];
     64     for(int i=0;i<n;i++){
     65         for(int j=0;j<n;j++)
     66             t[i][j]=str[n-1-j][i];
     67     }
     68     /*for(int i=0;i<n;i++){
     69         for(int j=0;j<n;j++)
     70             cout<<t[i][j];
     71         cout<<endl;
     72     }
     73     cout<<endl;*/
     74     int flag=0;
     75     for(int i=0;i<n;i++){
     76         for(int j=0;j<n;j++)
     77             if(t[i][j]!=val[i][j]){
     78                 flag=1; break;
     79             }
     80         if(flag)  break;
     81     }
     82     if(flag)   return false;
     83     return true;
     84 }
     85 bool Turn4(string str[],string val[]){
     86     for(int i=0;i<n;i++){
     87         for(int j=0;j<n/2;j++)
     88             swap(str[i][j],str[i][n-1-j]);
     89     }
     90     /*for(int i=0;i<n;i++){
     91         for(int j=0;j<n;j++)
     92             cout<<str[i][j];
     93         cout<<endl;
     94     }
     95     cout<<endl;*/
     96     int flag=0;
     97     for(int i=0;i<n;i++){
     98         for(int j=0;j<n;j++)
     99             if(str[i][j]!=val[i][j]){
    100                 flag=1; break;
    101             }
    102         if(flag)  break;
    103     }
    104     if(flag)   return false;
    105     return true;
    106 }
    107 bool Turn5(string str[],string val[]){
    108     char t1[maxn][maxn],t2[maxn][maxn],t3[maxn][maxn];
    109     /*for(int i=0;i<n;i++){
    110         for(int j=0;j<n/2;j++)
    111             swap(str[i][j],str[i][n-1-j]);
    112     }*/
    113     for(int i=0;i<n;i++){
    114         for(int j=0;j<n;j++)
    115             t1[i][j]=str[n-1-j][i];
    116     }
    117     int flag=0;
    118     for(int i=0;i<n;i++){
    119         for(int j=0;j<n;j++)
    120             if(t1[i][j]!=val[i][j]){
    121                 flag=1; break;
    122             }
    123         if(flag)  break;
    124     }
    125     if(!flag) return true;
    126     /*for(int i=0;i<n;i++){
    127         for(int j=0;j<n;j++)
    128             cout<<t1[i][j];
    129         cout<<endl;
    130     }
    131     cout<<endl;*/
    132     for(int i=0;i<n;i++){
    133         for(int j=0;j<n;j++)
    134             t2[i][j]=str[n-i-1][n-j-1];
    135     }
    136     flag=0;
    137     for(int i=0;i<n;i++){
    138         for(int j=0;j<n;j++)
    139             if(t2[i][j]!=val[i][j]){
    140                 flag=1; break;
    141             }
    142         if(flag)  break;
    143     }
    144     if(!flag)   return true;
    145     /*for(int i=0;i<n;i++){
    146         for(int j=0;j<n;j++)
    147             cout<<t2[i][j];
    148         cout<<endl;
    149     }
    150     cout<<endl;*/
    151     for(int i=0;i<n;i++){
    152         for(int j=0;j<n;j++){
    153             t3[i][j]=str[j][n-1-i];
    154         }
    155     }
    156     //int flag=0;
    157     flag=0;
    158     for(int i=0;i<n;i++){
    159         for(int j=0;j<n;j++)
    160             if(t3[i][j]!=val[i][j]){
    161                 flag=1; break;
    162             }
    163         if(flag)  break;
    164     }
    165     /*for(int i=0;i<n;i++){
    166         for(int j=0;j<n;j++)
    167             cout<<t3[i][j];
    168         cout<<endl;
    169     }
    170     cout<<endl;*/
    171     if(!flag)   return true;
    172     return false;
    173 }
    174 bool Turn6(string str[],string val[]){
    175     int flag=0;
    176     for(int i=0;i<n;i++){
    177         for(int j=0;j<n;j++)
    178             if(str[i][j]!=val[i][j]){
    179                 flag=1; break;
    180             }
    181         if(flag)  break;
    182     }
    183     if(flag)   return false;
    184     return true;
    185 }
    186 int main()
    187 {
    188     freopen("transform.in", "r", stdin);  
    189     freopen("transform.out", "w", stdout);
    190     while(cin>>n){
    191         for(int i=0;i<n;i++){
    192                 cin>>s[i];
    193         }
    194         for(int i=0;i<n;i++){
    195                 cin>>solve[i];
    196         }
    197         if(Turn1(s,solve)){
    198             cout<<"1"<<endl;
    199         }else if(Turn2(s,solve)){
    200             cout<<"2"<<endl;
    201         }else if(Turn3(s,solve)){
    202             cout<<"3"<<endl;
    203         }else if(Turn4(s,solve)){
    204             cout<<"4"<<endl;
    205         }else if(Turn5(s,solve)){
    206             cout<<"5"<<endl;
    207         }else if(Turn6(s,solve)){
    208             cout<<"6"<<endl;
    209         }else{
    210             cout<<"7"<<endl;
    211         }
    212     }
    213     return 0;
    214 }
    View Code
  • 相关阅读:
    RESTful
    Node.js Express 框架
    Node.js Web 模块
    Node.js Path 模块
    JavaFX输入并显示字符串
    JavaFX手眼协调小游戏(赋源代码)
    JavaFX作业七参考
    管理运筹学(Additional Simplex Algorithm)
    JavaFX15.4 ( 创建一个簡单的计算器 ) 编写一个程序完成加法、减法、乘法和除法操作
    JavaFX移动小球
  • 原文地址:https://www.cnblogs.com/wolf940509/p/6896914.html
Copyright © 2020-2023  润新知