UVa129
来源:互联网 发布:淘宝网蜜袋鼯购买 编辑:程序博客网 时间:2024/05/16 09:18
如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称“困难的串”。例如,BB、ABCDACABCAB、ABCDACBD都是容易的串,而D、DC、ABDAB、CBABCBA都是困难的串。
输入正整数n和L,输出有前L个字符组成的、字典序第k小的困难的串。例如,当L=3时,前7个困难的串分别为A、AB、ABA、ABAC、ABACA、ABACAB、ABACABA。输入保证答案不超过80个字符
样例输入:
7 3
30 3
样例输出:
ABACABA
ABACABCACBABCABACABCACBACABAC
答案:
输入正整数n和L,输出有前L个字符组成的、字典序第k小的困难的串。例如,当L=3时,前7个困难的串分别为A、AB、ABA、ABAC、ABACA、ABACAB、ABACABA。输入保证答案不超过80个字符
样例输入:
7 3
30 3
样例输出:
ABACABA
ABACABCACBABCABACABCACBACABAC
答案:
#include <stdio.h>int L, n, cnt = 0;int S[100] = {0};int dfs(int cur){ if(cnt++ == n){ for(int i = 0; i < cur; i++){ printf("%c", 'A' + S[i]); } printf("\n"); 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 eq = 1; for(int k = 0; k < j; k++){ if(S[cur - k] != S[cur - k - j]){ eq = 0; break; } } if(eq){ ok = 0; break; } } if(ok) if(!dfs(cur + 1)) return 0; } return 1;}int main(){ scanf("%d%d", &n, &L); int ok = dfs(1); return 0;}
0 0
- uva129
- UVA129
- uva129
- UVA129
- UVa129
- UVa129
- UVa129 -KryptonFactor
- uva129回朔法
- [回溯]Krypton Factor UVA129
- UVa129 - Krypton Factor
- UVA129 - Krypton Factor
- UVA129-Krypton Factor
- UVA129 Krypton Factor
- BNU17268 UVA129 Krypton Factor
- uva129 Krypton Factor
- UVA129困难的串
- UVA129困难的串
- UVa129@DFS回溯
- H5 分行
- javascript-生成随机数
- Arduino简单实例之四_PS2游戏摇杆
- centos 与hadoop2.7.3环境下hive2.1.1安装详解
- 如何用github上传代码
- UVa129
- UML用户指南第二版-读书笔记-第2章-UML介绍
- 安卓断点续传核心代码DownloadTask
- POJ 1163 The Triangle
- USB2.0协议分析
- 菜鸟读文献系列(二)
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- Python学习的个人笔记(基础语法)
- Tensorflow建立与读取TFrecorder文件