题意:将一个包含两个相邻的重复子串的子串,称为“容易的串”,其他为“困难的串”。 输入正整数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 困难的串相关推荐

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

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

  2. 回溯法之避免无用判断 UVA129 Krypton Factor困难的串

    题意:如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串称为"困难的串" 输入正整数n和L,输出由前L个字符组成的并且它的字典序是第n小的串,和 ...

  3. (回溯 UVa129)困难的串

    题目: 分析与解答: 题目: 如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串成为"困难的串".例如:BB,ABCDACABCAB,ABCDA ...

  4. Krypton Factor UVA - 129

    题目链接:Krypton Factor UVA - 129 #include<iostream> #include<string> #include<cstdio> ...

  5. UVA129 困难的串 Krypton Factor

    题目描述 将一个包含两个相邻的重复子串的子串,称为"容易的串",其他为"困难的串". 输入正整数n和l,输出由前l个字符组成的,字典序第k小的困难的串. 输入样 ...

  6. 紫书搜索 例题7-5 UVA - 129 Krypton Factor

    题目链接: https://vjudge.net/problem/UVA-129 题意: 题解: 代码: #include <bits/stdc++.h> using namespace ...

  7. 湖南省第八届大学生程序设计大赛原题 D - 平方根大搜索 UVA 12505 - Searching in sqrt(n)...

    http://acm.hust.edu.cn/vjudge/contest/view.action?cid=30746#problem/D D - 平方根大搜索 UVA12505 - Searchin ...

  8. BFS(两点搜索) UVA 11624 Fire!

    题目传送门 1 /* 2 BFS:首先对火搜索,求出火蔓延到某点的时间,再对J搜索,如果走到的地方火已经烧到了就不入队,直到走出边界. 3 */ 4 /************************ ...

  9. poj 1699 搜索(AGCT组成最短串,题目有BUG)

    题意:给定若干个DNA(由AGCT组成)串,求一个能够包含所有给定串的长串的最小长度.比如包含如下五个串:'TCGG', 'GCAG', 'CCGC', 'GATC' 和 'ATCG的结果是CCGCA ...

最新文章

  1. 雁栖湖会议研讨:计算机能代替程序员吗?
  2. 2010.6.15 常用数据类型转换总结
  3. java里的局部变量为什么不能加static?
  4. JavaScript 学习中的帮助记忆(日积月累)
  5. Python实现根据图片进行着色的词云
  6. SAP Cloud for Customer使用移动设备访问系统的硬件要求
  7. mysql在linux下显示花_在Linux 中搭建 Mysql
  8. 使用matlab工具研究神经网络的简单过程(网络和数据下载)
  9. Myeclipse 6.5 优化
  10. 嵌入式基础认识1:存储器(如RAM、ROM和FLASH)
  11. PHP的rm指令,git rm 命令
  12. 日留存、周留存、月留存,究竟怎样才能让更多的用户留下来?
  13. fio性能测试工具新添图形前端gfio
  14. 数据库服务器位置,怎么查看服务器数据库的位置
  15. 记一次代码被公司电脑加密后,编译不通过
  16. spark机器学习电影推荐
  17. 学生请假管理系统(需求说明+项目(部分代码))
  18. python:textwrap --文本自动换行与填充
  19. 为什么越来越多人不发朋友圈了?原因很现实
  20. 设计模式|代理模式、以《安家》为模型轻松理解静态代理和动态代理

热门文章

  1. 2021-2027年中国市医疗电子场投资分析及前景预测报告
  2. PowerBuilder程序 ASA 数据库移植后不能连接解决
  3. 受用一生的高效 PyCharm 使用技巧(四)
  4. Http请求之优雅的RestTemplate
  5. 工艺技术:14nm与28nm工艺
  6. ALD和CVD晶体管薄膜技术
  7. Lidar激光雷达与Radar雷达
  8. 自动驾驶系统关系与自动泊车原理
  9. 2021年大数据Spark(四十六):Structured Streaming Operations 操作
  10. Android ScrollView 滑动指定的距离