[搜索]UVa 129 困难的串
题意:将一个包含两个相邻的重复子串的子串,称为“容易的串”,其他为“困难的串”。 输入正整数n和l,输出由前l个字符组成的,字典序第n小的困难的串。
输入样例:
7 3 30 3 0 0
输出样例
ABAC ABA 7 ABAC ABCA CBAB CABA CABC ACBA CABA 28
UVa的输入输出很烦。
1、每行最后无空格
2、每四个字母为一组,每组中间有一个空格,每十六组一行,第十七组在第二行输出(注意第一行最后不能有空格)
思路:搜索,判断后缀(因为前面的部分已经判断过)。
直接看代码:
#include<cstdio> #include<iostream> #include<cstring> #include<string> #include<algorithm> using namespace std;int cnt,n,l; char a[1000]; int dfs(int cur){if(cnt++ == n){for(int i = 0; i < cur; i++){printf("%c",a[i]); if(i + 1 == 64&&i + 1!= cur)printf("\n");else if((i + 1)%4 == 0&&i + 1!= cur)printf(" ");}printf("\n%d\n",cur );return 0;//返回0代表已经找到第n大的困难的串}for(int i = 0; i < l; i++){//a[cur] = i + 'A';int ok = 1; for(int j = 1; j*2 <= cur + 1; j++){//j是后缀长度int is_same = 1;for(int k = 0; k < j; k++){if(a[cur - k] != a[cur - j - k]){//依次比较各个字母is_same = 0;break;}}if(is_same){ok = 0;break;}}if(ok)if(!dfs(cur + 1))return 0;}return 1; }int main(){while((cin >> n >> l)&&(n|l)){//特判n==0的情况cnt = 0;dfs(0);}return 0; }
转载于:https://www.cnblogs.com/FoxC/p/10629851.html
[搜索]UVa 129 困难的串相关推荐
- UVA - 129 Krypton Factor (困难的串)(回溯法)
题意:求由字母表前L个字母组成的字典序第n小的困难串.(如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串称为"困难的串".) 分析:回溯时,检 ...
- 回溯法之避免无用判断 UVA129 Krypton Factor困难的串
题意:如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串称为"困难的串" 输入正整数n和L,输出由前L个字符组成的并且它的字典序是第n小的串,和 ...
- (回溯 UVa129)困难的串
题目: 分析与解答: 题目: 如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串成为"困难的串".例如:BB,ABCDACABCAB,ABCDA ...
- Krypton Factor UVA - 129
题目链接:Krypton Factor UVA - 129 #include<iostream> #include<string> #include<cstdio> ...
- UVA129 困难的串 Krypton Factor
题目描述 将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第k小的困难的串. 输入样 ...
- 紫书搜索 例题7-5 UVA - 129 Krypton Factor
题目链接: https://vjudge.net/problem/UVA-129 题意: 题解: 代码: #include <bits/stdc++.h> using namespace ...
- 湖南省第八届大学生程序设计大赛原题 D - 平方根大搜索 UVA 12505 - Searching in sqrt(n)...
http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30746#problem/D D - 平方根大搜索 UVA12505 - Searchin ...
- BFS(两点搜索) UVA 11624 Fire!
题目传送门 1 /* 2 BFS:首先对火搜索,求出火蔓延到某点的时间,再对J搜索,如果走到的地方火已经烧到了就不入队,直到走出边界. 3 */ 4 /************************ ...
- poj 1699 搜索(AGCT组成最短串,题目有BUG)
题意:给定若干个DNA(由AGCT组成)串,求一个能够包含所有给定串的长串的最小长度.比如包含如下五个串:'TCGG', 'GCAG', 'CCGC', 'GATC' 和 'ATCG的结果是CCGCA ...
最新文章
- 雁栖湖会议研讨:计算机能代替程序员吗?
- 2010.6.15 常用数据类型转换总结
- java里的局部变量为什么不能加static?
- JavaScript 学习中的帮助记忆(日积月累)
- Python实现根据图片进行着色的词云
- SAP Cloud for Customer使用移动设备访问系统的硬件要求
- mysql在linux下显示花_在Linux 中搭建 Mysql
- 使用matlab工具研究神经网络的简单过程(网络和数据下载)
- Myeclipse 6.5 优化
- 嵌入式基础认识1:存储器(如RAM、ROM和FLASH)
- PHP的rm指令,git rm 命令
- 日留存、周留存、月留存,究竟怎样才能让更多的用户留下来?
- fio性能测试工具新添图形前端gfio
- 数据库服务器位置,怎么查看服务器数据库的位置
- 记一次代码被公司电脑加密后,编译不通过
- spark机器学习电影推荐
- 学生请假管理系统(需求说明+项目(部分代码))
- python:textwrap --文本自动换行与填充
- 为什么越来越多人不发朋友圈了?原因很现实
- 设计模式|代理模式、以《安家》为模型轻松理解静态代理和动态代理