2018-5-12

如何判断一个字符串是否包含连续重复子串呢?
我们可以检查所有长度为偶数的子串,判断每一个子串的前半部分是否与后半部分相同,但是实际上我们只需每一次判断当前串的后缀即可,因为前面的我们已经在前面判断过了。就好像八皇后问题一样,我们只需要当前放置的皇后是否满足题意即可,而不必考虑之前的皇后了。

#include<iostream>
using namespace std;const int N = 100;
char x[N+1];
int k,l,cnt;void dfs(int step){if (cnt>k) return ;if (cnt==k){for (int i=0;i<step;i++){cout<<x[i];if (i%4==3&&i!=step-1) cout<<" ";}cout<<endl<<step<<endl;return ;}for (int i=0;i<l;i++){x[step]=i+'A';bool f1=false;for (int j=1;2*j<=step+1;j+=1){bool f2=false;for (int p=step;p>step-j;p--){if (x[p]!=x[p-j]){f2=true;break;}}if (!f2){f1=true;break;}}if (!f1){cnt++;dfs(step+1);}}
}int main(){while (cin>>k>>l){if (k==0&&l==0) break;cnt=0;dfs(0);}return 0;
}

UVa 129 - Krypton Factor(回溯法)相关推荐

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

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

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

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

  3. 129:Krypton Factor

    Krypton Factor 注意 && 别写成 & 了... #include<bits/stdc++.h> using namespace std; const ...

  4. Krypton Factor UVA - 129

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

  5. Uva129 Krypton Factor【dfs回溯】【例题7-5】

    题目:Krypton Factor 题意:如果一个字符串包含两个相邻的重复子串,则称它是"容易的串",其他串称为"困难的串".输入n,L,输出由前L个字符组成的 ...

  6. 【算法学习笔记】16.暴力求解法04 回溯法03 剪枝法 带宽

    在之前的 N 皇后和困难的串问题中,回溯法都是在解决可行性约束.换一句话说,对于回溯点的判断是用来验证此点是否合法. 但是在一些优化问题的求解过程中,每一个点都是合法的,所以我们要进行剪枝. 1.先得 ...

  7. kyo酱的博客--回溯法

    欢迎阅读kyo酱的博客! emmm欢迎所有的认识的,不认识的大家来阅读我的博客!其实在这篇博客之前写过好几篇解leetcode的博客,无奈功力不够深厚,代码写得不好都没有什么人看... 于是不知是从什 ...

  8. 算法设计与分析第5章 回溯法(二)【回溯法应用】

    第5章 回溯法 5.2 应用范例 1.0-1背包问题 有n件物品和一个容量为c的背包.第i件物品的重量是w[i],价值是p[i].求解将哪些物品装入背包可使这些物品的重量总和不超过背包容量,且价值总和 ...

  9. 算法设计与分析第5章 回溯法(一)【回溯法】

    第5章 回溯法 5.1 回溯法 1.回溯法的提出  有许多问题,当需要找出它的解集或者要求回答什么解是满足某些约束条件的最佳解时,往往要使用回溯法. 2. 问题的解空间 (1)问题的解向量:回溯法希望 ...

最新文章

  1. 舞伴问题数据结构java_Gale-Shapley算法解决舞伴问题过程详解(C++实现)
  2. 首战大吉:红帆科技参加第八届IT羽毛球赛
  3. python 基础 1.2--pycharm 的安装及使用
  4. 用深度优先搜索解迷宫问题
  5. StringUtil中常用的方法
  6. 模拟标准c++中的Rtti
  7. HDU 2833 WuKong
  8. 解决方案:外域HDFS客户端访问内网HDFS datanode
  9. 【算法竞赛学习】数据分析达人赛3:汽车产品聚类分析
  10. MySQL启动很慢的原因
  11. idea怎么更改推到github的路径_IDEA 拉取、上传、更新 项目到 Gitee+GitHub_超详细超简单版...
  12. 社交软件上“你可能认识的人”到底是怎么找到你的?
  13. 怎么做视频伪原创 快手视频修改md5
  14. Windows下如何正确清理C盘?
  15. 蓝牙加密方案,蓝牙方案,蓝牙usbkey,蓝牙key,蓝牙U盾,蓝牙智能卡(公交卡等CPU卡),蓝牙身份认证产品分享,蓝牙公交卡,蓝牙会员卡
  16. c# 实现的支付宝支付
  17. php getimagesize svg,getimagesize
  18. 前端搞一个扭蛋抽奖小动画?
  19. 1.1 电阻 RES Resistance
  20. C++ typedef typename 作用

热门文章

  1. ios 高德挪动地图获取经纬度_高德地图获取地理位置经纬度并将经维度转化为详细地址信息...
  2. PyPDF2 | 利用 Python 实现 PDF 分割
  3. 带你走进和声搜索算法(Harmony search )的世界!
  4. R 学习 - 富集分析泡泡图回应
  5. MacOS安装失败?教你如何使用Mac恢复功能
  6. 中国电子学会scratch等级考试二级
  7. 锦标赛排序、洪水填充算法、平衡规划
  8. P1618 三连击(升级版)-- python3实现
  9. 1.10 编程基础之简单排序 03 成绩排序 3分 python
  10. 操作系统学习之用C语言模拟伙伴(Buddy)算法