zoukankan      html  css  js  c++  java
  • UVa 129 (回溯法) Krypton Factor

    回溯法确实不是很好理解掌握的,学习紫书的代码细细体会。

     1 #include <cstdio>
     2 
     3 char S[100];
     4 int n, L, cnt;
     5 
     6 int dfs(int cur)
     7 {
     8     if(cnt++ == n)
     9     {
    10         for(int i = 0; i < cur; ++i)
    11         {
    12             if(i % 64 == 0 && i) puts("");
    13             else if(i % 4 == 0 && i) printf(" ");
    14             printf("%c", 'A' + S[i]);
    15         }
    16         printf("
    %d
    ", cur);
    17         return 0;
    18     }
    19     for(int i = 0; i < L; ++i)
    20     {
    21         S[cur] = i;
    22         int ok = 1;
    23         for(int j = 1; j*2 <= cur + 1; ++j)
    24         {
    25             int equal = 1;
    26             for(int k = 0; k < j; ++k)
    27                 if(S[cur-k] != S[cur-k-j]) { equal = 0; break; }
    28             if(equal) { ok = 0; break; }
    29         }
    30         if(ok) if(!dfs(cur+1)) return 0;
    31     }
    32     return 1;
    33 }
    34 
    35 int main()
    36 {
    37     while(scanf("%d%d", &n, &L) == 2 && n)
    38     {
    39         cnt = 0;
    40         dfs(0);
    41     }
    42 
    43     return 0;
    44 }
    代码君
  • 相关阅读:
    前端之CSS
    前端之HTML
    数据库作业案例
    django进阶版4
    django进阶版3
    django进阶版2
    django初步了解4
    django进阶版1
    django初步了解3
    django初步了解2
  • 原文地址:https://www.cnblogs.com/AOQNRMGYXLMV/p/4210579.html
Copyright © 2011-2022 走看看