• uva1262


     1                               
     2                           /*  解码 _________________________________________________________________________________
     3                             
     4                               #include <iostream> 
     5                               #include <map> 
     6                               #include <cmath>
     7                               #include <vector>
     8                               #include <cstdio>
     9                               #include <string>
    10                               #include <cstring> 
    11                               #include <algorithm>    
    12                               using namespace std; 
    13                               #define fir first
    14                               #define sec second
    15                               #define pb(x) push_back(x) 
    16                               #define mem(A, X) memset(A, X, sizeof A)
    17                               #define REP(i,l,u) for(int (i)=(int)(l);(i)<=(int)(u);++(i))
    18                               #define rep(i,l,u) for(int (i)=(int)(l);(i)>=(int)(u);--(i)) 
    19                               #define foreach(e,x) for(__typeof(x.begin()) e=x.begin();e!=x.end();++e) 
    20                               typedef long long LL;   
    21                               typedef unsigned long long ull;
    22                               typedef pair<long,long>  pll;     
    23                               
    24                               
    25                               LL T,n;
    26                               int k;
    27                               const int mod=1e9+7; 
    28                               const int maxn=1e5+10; 
    29                               char s[2][6][10],ans[10];
    30                               int cnt;
    31                               bool dfs(int col)
    32                               {
    33                                   if(col==5)
    34                                   {
    35                                       if(++cnt==k) 
    36                                       { 
    37                                           ans[5]='';
    38                                           printf("%s
    ",ans); 
    39                                           return true;
    40                                       }
    41                                       else 
    42                                           return false;
    43                                   }
    44                                   else
    45                                   {
    46                                       bool vis[2][26];
    47                                       mem(vis,false);
    48 
    49                                       REP(i,0,1)
    50                                        REP(j,0,5) 
    51                                             vis[i][ s[i][j][col]-'A' ]=true; //只处理当前列对应的可能位置,搜索时只处理当前层。
    52  
    53                                        REP(j,0,25)  
    54                                             if(vis[0][j]==true && vis[1][j]==true)
    55                                                 {
    56                                                     ans[col]=j+'A';
    57                                                     if( dfs(col+1) ) return true;
    58                                                 }  
    59                                   }
    60                                   return false;
    61 
    62                               }
    63 
    64                               int main()
    65                               {
    66                                    freopen("in.txt","r",stdin); 
    67                                    //while(cin>>n)
    68                                    while(scanf("%d",&T)!=EOF)
    69                                    { 
    70                                      REP(kase,1,T)  
    71                                      {
    72                                          scanf("%d",&k);
    73                                          REP(i,0,1)
    74                                           REP(j,0,5) 
    75                                               {
    76                                                   scanf("%s",&s[i][j]);
    77                                                   //printf("%s
    ",s[i][j]);
    78                                               }
    79                                          cnt=0;
    80                                          if(!dfs(0)) puts("NO");  
    81                                       }
    82                   
    83                                    }
    84                                 return 0;
    85                               }
    86                   
    87                              /*
    88                                 note    :   编码理论  
    89                                                 本题运用的暴力方法,编写简单,
    90                                                 如果用直接构造性的编码,实现时要注意更多的细节。
    91 
    92 
    93                                 debug   :   
    94                                 optimize:
    95                                             直接操纵输入的字符,减少中间的传递,简化过程。
    96                                             二维的数组字母表,处理多个相似的对象时进行优化。
    97                               */ 
  • 相关阅读:
    学习笔记
    display:inline、block、inline-block的区别
    响应式布局设计
    CSS中position属性三大定位方式讲解
    CSS position 属性 一定要有width
    JQuery中each()怎么跳出
    JSON 学习笔记
    【转】30个你不可不知的CSS选择器
    HTML文档类型的作用,文档类型有多少种?
    jQuery中children()与find()的区别
  • 原文地址:https://www.cnblogs.com/paulzjt/p/6075410.html
Copyright © 2020-2023  润新知