Uva-129 Krypton Factor

Posted asurudo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 }

 

以上是关于Uva-129 Krypton Factor的主要内容,如果未能解决你的问题,请参考以下文章

Uva-129 Krypton Factor

UVA129-Krypton Factor(搜索剪枝)

Uva 129 Krypton Factor

UVa129 Krypton Factor (回溯法)

UVa 129 Krypton Factor (DFS && 回溯)

追溯法应用举例2-困难的串