题目描述

如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称为"困难的串"。例如,BB,ABCDACABCAB,ABCDABCD都是容易的串,而D,DC,ABDAB,CBABCBAD都是困难的串。

输入

输入正整数n和L。

输出

输出由前L个字符串组成的,字典序第k小的困难的串。例如,当L=3时,前7个困难的串分别为A,AB,ABA,ABAC,ABACA,ABACAB,ABACABA。输入保证答案不超过80个字符。

样例输入
7 3
30 3
样例输出
ABACABA
ABACABCACBABCABACABCACBACABA 成功对着小白敲了一次,然并卵,不懂题。
//困难的串
#include <iostream>
#include <string.h>
#include <stdio.h> using namespace std;
int n, s[1001], L, cnt; 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 e = 1 ;
for(int k=0; k<j; k++)
if(s[cur-k] != s[cur-k-j])
{
e = 0 ;
break ;
}
if(e)
{
OK = 0 ;
break ;
}
}
if(OK) if(!DFS(cur+1)) return 0;
}
return 1;
} int main()
{
while(~scanf("%d %d",&n, &L))
{
cnt = 0;
memset(s,0,sizeof(s));
DFS(0);
} return 0;
}
 

ACM题目————困难的串的更多相关文章

  1. 【DFS】困难的串

    题目: 问题描述:如果一个字符串包含两个相邻的重复子串,则称它为容易的串,其他串称为困难的串.如:BB,ABCDACABCAB,ABCDABCD都是容易的,A,AB,ABA,D,DC,ABDAB,CB ...

  2. 困难的串(dfs)

    困难的串 题意: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”.例如,                 BB.ABCDABCD都是容易的串,而D.DC.ABDAD ...

  3. uva129 - Krypton Factor 7.4.3 困难的串

      7.4.3困难的串 学习点:dfs加入返回值,递归搜索过程中如果有一个成功,就直接退出 //7.4.3 困难的串 #include<cstdio> #include<cstrin ...

  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. UVA129 Krypton Factor 困难的串 dfs回溯【DFS】

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

  7. ACM题目————最长回文串

    Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等   Input 输入有多组cas ...

  8. ACM题目————字串数

    Description 一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA". 给定若干字母和它们相应的个数,计算一共可 ...

  9. 美女程序员是如何将QQ转换成题目中那串数字的--读博文《找女神要QQ号码》

    我只能说好好的端午节你们不约么?,还在这里写代码?我也是够无聊的,下班了不走也在这跟风写着玩!<找女生要QQ号码原文>原文链接http://www.cnblogs.com/iforever ...

随机推荐

  1. Python重要基础点

    这里记录一些实际编写代码时遇到的常用/重要的内容,有前辈的,也有自己整理加进来的. 以点的形式记录,之后遇到的内容会慢慢补充进来 1. 斜杠 / :斜字第一笔, 转义用反斜杠 \ : 转的最后一笔 2 ...

  2. HDU 5512 - Pagodas - [gcd解决博弈]

    题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5512 Time Limit: 2000/1000 MS (Java/Others) Mem ...

  3. YARN Architecture

    The fundamental idea of YARN is to split up the functionalities of resource management and job sched ...

  4. flask中的信号量

    一.在flask中自定义信号 from flask import Flask, current_app, flash, render_template from flask.signals impor ...

  5. webpack学习三——output

    output的两个参数filename,path 一.path输出路径,输出路径要绝对路径,否则报错.做法如下: path:__dirname + 'path' 二.filename 输出文件命,相对 ...

  6. 如何bitbucket上删除项目

    老外网页操作习惯不同,删除项目的按钮,我花了半天,突然瞟到delete,如下图(真他妈的隐蔽,记住这2017/3/7):

  7. 【Python爬虫】如何确定自己浏览器的User-Agent信息

    User-Agent:简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本.浏览器及版本等信息.在做爬虫时加上此信息,可以伪装为浏览器:如果不加,很可能会被识别出为爬虫. 那么如 ...

  8. python操作docx学习资料

    1.博客 (1)写入参考 https://www.cnblogs.com/rencm/p/6285304.html (2)读取参考 http://www.cnblogs.com/zhanghongfe ...

  9. js屏蔽f12键

    <script>            $(document).keydown(function(e) {                 if (e.keyCode == 123) {/ ...

  10. sql server内置存储过程、查看系统信息

    1.检索关键字:sql server内置存储过程,sql server查看系统信息 2.查看磁盘空间:EXEC master.dbo.xp_fixeddrives , --查看各个数据库所在磁盘情况S ...