UVA129-Krypton Factor

来源:互联网 发布:佳能ip2880s清零软件 编辑:程序博客网 时间:2024/06/11 18:31

题意比较明显,找前L个字母组成的第n个困难串。深搜。

#include<stdio.h>#include<string.h>using namespace std;int n,L,cnt;int S[100];int oo=0;int dfs(int cur){    if(cnt++==n){        for(int i=0;i<cur;i++){                oo++;            printf("%c",'A'+S[i]);            if(oo%64==0) printf("\n");            else if(oo%4==0&&i!=cur-1) printf(" ");//格式        }        printf("\n%d\n",oo);        return 0;    }    for(int i=0;i<L;i++){//从前几个字母中添加        S[cur]=i;        int ok=1;        for(int j=1;j*2<=cur+1;j++){//根据题意,每偶数判断,需要分析。            int equal=1;            for(int k=0;k<j;k++)            if(S[cur-k]!=S[cur-k-j]) {equal=0;break; }            if(equal) { ok=0;break;}        }        if(ok) if(!dfs(cur+1)) return 0;    }    return 1;}int main(){    while(scanf("%d%d",&n,&L)&&n&&L)    {        oo=0;        cnt=0;        dfs(0);    }    return 0;}


0 0
原创粉丝点击