zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    Python 爬虫js加密破解(一) 爬取今日头条as cp 算法 解密
    Python 爬虫实例(2)—— 爬取今日头条
    Python 爬虫实例(1)—— 爬取百度图片
    python 操作redis之——HyperLogLog (八)
    python 操作redis之——有序集合(sorted set) (七)
    Python操作redis系列之 列表(list) (五)
    Python操作redis系列以 哈希(Hash)命令详解(四)
    Python操作redis字符串(String)详解 (三)
    How to Install MySQL on CentOS 7
    Linux SSH远程文件/目录 传输
  • 原文地址:https://www.cnblogs.com/wolf940509/p/6896914.html
Copyright © 2011-2022 走看看