7.4.3困难的串

学习点:dfs加入返回值,递归搜索过程中如果有一个成功,就直接退出

//7.4.3 困难的串
#include<cstdio>
#include<cstring>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int n,L;
int cnt;
char v[81]; bool judge(int cur)
{
for(int i=1;i<=(cur+1)/2;i++)//判断长度为2*i的后缀是否有相同的
{
bool equal=1;
for(int j=0;j<i;j++)
if(v[cur-i-j]!=v[cur-j])
{
equal=0;
break;
}
if(equal)
return false;
}
return true;
} int dfs(int cur)
{
//printf("cur: %d\n", cur);
for(int i=0;i<L;i++)
{
v[cur]='A'+i;
if(judge(cur))
{
cnt++;
if(cnt==n)
{
v[cur+1]=0;
printf("%s\n", v);
return 1;
}
if(dfs(cur+1))
return 1;
}
}
return 0;
} int main()
{
while(cin>>n>>L)
{
cnt=0;
dfs(0);
}
return 0;
}

修改一下输出格式即可解决uva129

//7.4.3 困难的串
#include<cstdio>
#include<cstring>
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
int n,L;
int cnt;
char v[81]; bool judge(int cur)
{
for(int i=1;i<=(cur+1)/2;i++)//判断长度为2*i的后缀是否有相同的
{
bool equal=1;
for(int j=0;j<i;j++)
if(v[cur-i-j]!=v[cur-j])
{
equal=0;
break;
}
if(equal)
return false;
}
return true;
} void output(int cur)
{
for(int i=0;i<=cur;i++)
{
if(i%4==0 && i>0)
{
if(i%64==0 && i>0)
putchar('\n');
else
putchar(' ');
}
putchar(v[i]);
}
printf("\n%d\n", cur+1);
}
int dfs(int cur)
{
//printf("cur: %d\n", cur);
for(int i=0;i<L;i++)
{
v[cur]='A'+i;
if(judge(cur))
{
cnt++;
if(cnt==n)
{
v[cur+1]=0;
//printf("%s\n", v);
output(cur);
return 1;
}
if(dfs(cur+1))
return 1;
}
}
return 0;
} int main()
{
while(cin>>n>>L && n && L)
{
cnt=0;
dfs(0);
}
return 0;
}

uva129 - Krypton Factor 7.4.3 困难的串的更多相关文章

  1. UVA129 Krypton Factor 困难的串 dfs回溯【DFS】

     Krypton Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  2. UVA129 —— Krypton Factor (氪因素)

    Input and Output In order to provide the Quiz Master with a potentially unlimited source of question ...

  3. 129 - Krypton Factor

    /*UVa129 - Krypton Factor --回溯问题.看例子可知道确定该字符串是按照从左到右依次考虑每个位置,当前位置填不上所有的字符时,需要回溯. -- */ #define _CRT_ ...

  4. Krypton Factor 困难的串-Uva 129(回溯)

    原题:https://uva.onlinejudge.org/external/1/129.pdf 按照字典顺序生成第n个“困难的串” “困难的串”指的是形如ABAB, ABCABC, CDFGZEF ...

  5. UVA - 129 Krypton Factor (困难的串)(回溯法)

    题意:求由字母表前L个字母组成的字典序第n小的困难串.(如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串称为"困难的串".) 分析:回溯时,检 ...

  6. Krypton Factor

    Krypton Factor Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  7. UVA.129 Krypton Factor (搜索+暴力)

    UVA.129 Krypton Factor (搜索+暴力) 题意分析 搜索的策略是:优先找长串,若长串不合法,则回溯,继续找到合法串,直到找到所求合法串的编号,输出即可. 注意的地方就是合法串的判断 ...

  8. Uva 129 Krypton Factor

    0.这道题的输出 处理起来挺麻烦的 以后类似的可以借鉴一下 ;i<cur;i++) { && i%==) printf("\n%c",a[i]); & ...

  9. UVa 129 Krypton Factor【回溯】

    学习的紫书的回溯,理解起来还是好困难的说啊= = #include<iostream> #include<cstdio> #include<cstring> #in ...

随机推荐

  1. 为什么从PhoneGap中逃离

    我是一名移动应用的开发者,从JAVA 为主的Android到以Objective-C为主的iOS最后到以HTML5为主的跨平台开发,我已经走过了五年多的时光,而我也从一个底层的码农成长为项目负责人. ...

  2. 虚拟机VMware tools作用以及其安装

    虚拟机VMware tools的作用(1). 更新虚拟机中的显卡驱动, 使虚拟机中的XWindows可以运行在SVGA模式下.在客户操作系统中安装Mware Tools非常重要.如果不安装VMware ...

  3. hdu 1074(状态压缩dp+记录路径)

    题意:给了n个家庭作业,然后给了每个家庭作业的完成期限和花费的实践,如果完成时间超过了期限,那么就要扣除分数,然后让你找出一个最优方案使扣除的分数最少,当存在多种方案时,输出字典序最小的那种,因为题意 ...

  4. nginx服务器防sql注入/溢出攻击/spam及禁User-agents

    本文章给大家介绍一个nginx服务器防sql注入/溢出攻击/spam及禁User-agents实例代码,有需要了解的朋友可进入参考. 在配置文件添加如下字段即可  代码如下 复制代码 server { ...

  5. JDBC项目实践

    这几天学习了JDBC的接口,从简单的连接,到不断地对JDBC的代码进行优化,最后到实体类,DAO类的设计,现在对这几天所学做一个总结: 首先是软件的系统组成: 数据库中有很多的表:Customer,D ...

  6. spark 连接 mysql 数据库

    在所有master和slave上也要在spark/conf/spark-conf.sh里面设置driver的classpath,解决编译找不到driver的问题 http://www.iteblog. ...

  7. Linux 权限相关

    Linux中,所有文件都有 三种权限:User ,Group,Other 三个文件: /etc/passwd :包括所有系统账号,一般用户身份和root信息 /etc/shadow :保存个人密码 / ...

  8. iOS优秀博客收录(持续更新)

    唐巧 王巍 破船之家 NSHipster Limboy 无网不剩 念茜的博客 Xcode Dev Ted’s Homepage txx’s blog KEVIN BLOG 阿毛的蛋疼地 亚庆的 Blo ...

  9. 更改VS的运行主窗体

    Program.cs中Application.EnableVisualStyles();              Application.SetCompatibleTextRenderingDefa ...

  10. MyEclipse10导入工程jsp报错问题

    好多时候,再用myecplise进行项目开发的时候,遇到导入工程的时候,工程内的jsp页面好多都报错.这是什么原因造成的呢?​ 我对于我遇到的问题及解决方法,跟大家分享一下.​ 我的Jsp页面报错的原 ...