• 回溯-uva129


    题目链接:https://vjudge.net/problem/UVA-129

    题解:

    这道题卡了一会儿的时间,一开始最大的问题是如何判断添加了一个字符之后,该字符串是不是一个困难的串,解决办法是:利用两个循环分别取相邻的子串,在第二重循环里,如果有一对字符不满足重合,则它必定不是重复的串,如果第一重循环全部满足的话,这个字符放进去必定是困难的串,这就是第一个问题的解决办法。

    除了上面的困难之外,还有两个要注意的地方,第一个就是:这个递归函数,一定要加及时的终止条件,找到第一组满足条件的就不用找了。第二个就是:输出小麻烦,一定要小心。

    代码如下:

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    #define MAXN 100
    using namespace std;
    typedef long long ll;
    char ans[MAXN];
    int sumtimes;
    int n,L;
    int findnThSeq(int cur){
        if(sumtimes++ == n){
            sumtimes--;
            int kase = 0;
            for(int i = 0;i<cur;i++){
                kase++;
                printf("%c",ans[i]);
                if(kase % 4 == 0 && kase != 64 && kase != cur) printf(" ");
                if(kase == 64 && cur != 64)printf("
    ");
            }
            printf("
    %d
    ",cur);
            return 0;
        }
        else{
            for(int i = 0;i<L;i++){
                int ok = 1;
                ans[cur] =  'A' + i;
                for(int j = 1;j*2 <= cur+1;j++){
                    int rignt = 1;
                    for(int k = 0;k<j;k++){
                        if(ans[cur - k] != ans[cur-k-j]){
                            rignt = 0;
                            break;
                        }
                    }
                    if(rignt == 1){
                        ok = 0;
                        break;
                    }
                }
                if(ok){
                    if(!findnThSeq(cur+1)) return 0;
                }
            }
        }
        return 1;
    }
    
    
    
    int main(void){
        while(scanf("%d%d",&n,&L) == 2 && n && L){
            sumtimes = 0;
            findnThSeq(0);
        }
    
        return 0;
    }
  • 相关阅读:
    ShiroConfig V2.0
    MyRealm V2.0(注:加上了权限字符串)
    ShiroUtils通用工具包
    ResourcesConfig实现配置资源路径
    MyRealm V1.0
    ShiroConfig V1.0
    MySQL
    Git实战
    scala中函数简单使用记录
    scala中Trait简单使用
  • 原文地址:https://www.cnblogs.com/doubest/p/10173281.html
Copyright © 2020-2023  润新知