zoukankan      html  css  js  c++  java
  • Uva-129 Krypton Factor

     1 #include <bits/stdc++.h>
     2 #define _for(i,a,b) for(int i = (a);i < (b);i ++)
     3 using namespace std;
     4 
     5 
     6 const char a[27] = {'A','B','C','D','E','F','G','H','I','J',
     7                     'K','L','M','N','O','P','Q','R','S','T',
     8                     'U','V','W','X','Y','Z'
     9                    };
    10 
    11 int n,L;
    12 int cnt;
    13 int s[82];
    14 
    15 int judge(int cur)
    16 {
    17     for(int j = 1; j * 2 <= cur + 1; j ++)
    18     {
    19         int equal = 1;
    20         _for(k,0,j)
    21         if(s[cur-k]!=s[cur-k-j])
    22         {
    23             equal = 0;
    24             break;
    25         }
    26         if(equal) return 0;
    27     }
    28     return 1;
    29 }
    30 int dfs(int cur)
    31 {
    32     if(cnt++ == n)
    33     {
    34         _for(i,0,cur)
    35         {
    36             if(i && (i%64!=0) && (i%4==0)) printf(" ");
    37             if(i && (i%64==0)) printf("
    ");
    38             printf("%c",a[s[i]]);
    39         }
    40         printf("
    %d
    ",cur);
    41         return 0;
    42     }
    43     _for(i,0,L)
    44     {
    45         s[cur] = i;
    46         if(judge(cur))
    47             if(!dfs(cur+1))    return 0;
    48     }
    49     return 1;
    50 }
    51 
    52 int main()
    53 {
    54     while(cin >> n >> L && (n || L))
    55     {
    56         memset(s,0,sizeof(s));
    57         cnt = 0;
    58         dfs(0);
    59     }
    60     return 0;
    61 }
  • 相关阅读:
    Python之函数进阶
    Python之函数初识
    Python之 文件操作
    数据类型补充
    Python 基础三
    寒假学习第五天
    寒假学习第四天
    寒假学习第三天
    寒假学习第二天
    寒假学习第一天
  • 原文地址:https://www.cnblogs.com/Asurudo/p/10050302.html
Copyright © 2011-2022 走看看