ACM题目————困难的串
如果一个字符串包含两个相邻的重复子串,则称他是“容易的串”,其他串称为"困难的串"。例如,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题目————困难的串的更多相关文章
- 【DFS】困难的串
题目: 问题描述:如果一个字符串包含两个相邻的重复子串,则称它为容易的串,其他串称为困难的串.如:BB,ABCDACABCAB,ABCDABCD都是容易的,A,AB,ABA,D,DC,ABDAB,CB ...
- 困难的串(dfs)
困难的串 题意: 如果一个字符串包含两个相邻的重复子串,则称它是“容易的串”,其他串称为“困难的串”.例如, BB.ABCDABCD都是容易的串,而D.DC.ABDAD ...
- uva129 - Krypton Factor 7.4.3 困难的串
7.4.3困难的串 学习点:dfs加入返回值,递归搜索过程中如果有一个成功,就直接退出 //7.4.3 困难的串 #include<cstdio> #include<cstrin ...
- Krypton Factor 困难的串-Uva 129(回溯)
原题:https://uva.onlinejudge.org/external/1/129.pdf 按照字典顺序生成第n个“困难的串” “困难的串”指的是形如ABAB, ABCABC, CDFGZEF ...
- UVA - 129 Krypton Factor (困难的串)(回溯法)
题意:求由字母表前L个字母组成的字典序第n小的困难串.(如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串称为"困难的串".) 分析:回溯时,检 ...
- UVA129 Krypton Factor 困难的串 dfs回溯【DFS】
Krypton Factor Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others ...
- ACM题目————最长回文串
Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input 输入有多组cas ...
- ACM题目————字串数
Description 一个A和两个B一共可以组成三种字符串:"ABB","BAB","BBA". 给定若干字母和它们相应的个数,计算一共可 ...
- 美女程序员是如何将QQ转换成题目中那串数字的--读博文《找女神要QQ号码》
我只能说好好的端午节你们不约么?,还在这里写代码?我也是够无聊的,下班了不走也在这跟风写着玩!<找女生要QQ号码原文>原文链接http://www.cnblogs.com/iforever ...
随机推荐
- Python重要基础点
这里记录一些实际编写代码时遇到的常用/重要的内容,有前辈的,也有自己整理加进来的. 以点的形式记录,之后遇到的内容会慢慢补充进来 1. 斜杠 / :斜字第一笔, 转义用反斜杠 \ : 转的最后一笔 2 ...
- HDU 5512 - Pagodas - [gcd解决博弈]
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=5512 Time Limit: 2000/1000 MS (Java/Others) Mem ...
- YARN Architecture
The fundamental idea of YARN is to split up the functionalities of resource management and job sched ...
- flask中的信号量
一.在flask中自定义信号 from flask import Flask, current_app, flash, render_template from flask.signals impor ...
- webpack学习三——output
output的两个参数filename,path 一.path输出路径,输出路径要绝对路径,否则报错.做法如下: path:__dirname + 'path' 二.filename 输出文件命,相对 ...
- 如何bitbucket上删除项目
老外网页操作习惯不同,删除项目的按钮,我花了半天,突然瞟到delete,如下图(真他妈的隐蔽,记住这2017/3/7):
- 【Python爬虫】如何确定自己浏览器的User-Agent信息
User-Agent:简称UA,它是一个特殊的字符串头,可以使服务器识别客户使用的操作系统及版本.浏览器及版本等信息.在做爬虫时加上此信息,可以伪装为浏览器:如果不加,很可能会被识别出为爬虫. 那么如 ...
- python操作docx学习资料
1.博客 (1)写入参考 https://www.cnblogs.com/rencm/p/6285304.html (2)读取参考 http://www.cnblogs.com/zhanghongfe ...
- js屏蔽f12键
<script> $(document).keydown(function(e) { if (e.keyCode == 123) {/ ...
- sql server内置存储过程、查看系统信息
1.检索关键字:sql server内置存储过程,sql server查看系统信息 2.查看磁盘空间:EXEC master.dbo.xp_fixeddrives , --查看各个数据库所在磁盘情况S ...