题意: 如果一个字符串包含两个相邻的重复子串,则是简单串,其他的是困难串 输入n和l,输出由前l个字符组成的,字典序第k小的困难串。每四个字符输出一个空格。输出串后下一行输出它的长度。分析: 选定终点的位置,判断是否是包含连续重复子串,不是则cnt+1。代码:#include #include...
分类:
其他好文 时间:
2015-10-06 11:39:46
阅读次数:
172
题目大意:由字母A到Z组成的字符串,其中有两个子串完全相同的叫做容易的串,反之叫困难的串。找出由前L个字母组成的第n个困难的串。题目分析:简单回溯,不过要判断是否存在重复子串比较棘手。《入门经典》上借鉴八皇后问题,只判断添进字符后是否存在连续子串。具体做法是这样的,以长度为对象枚举以新添进字符为尾巴...
分类:
其他好文 时间:
2015-09-28 16:01:22
阅读次数:
198
原问题,其实是找最长的相似子串,所谓相似就是一个子串每个值加上一个偏移值可以得到另一个子串。我们先求原数组的差值数组,对新数组求后缀数组,二分答案,判定是否有某个Height数组中的sa最小值与最大值之差大于当前枚举的子串长度。#include #include #include #include ...
分类:
其他好文 时间:
2015-09-18 23:06:57
阅读次数:
222
1.给定一个字符串,求最长重复子串,这两个子串可以重叠。 这道题是后缀数组的一个简单应用。做法比较简单,只需要求 height 数组里的最大值即可。2.给定一个字符串,求最长重复子串,这两个子串不能重叠。 这题比上一题稍复杂一点。先二分答案,把题目变成判定性问题:判断是否存在两个长度为 ...
分类:
编程语言 时间:
2015-09-08 20:09:27
阅读次数:
228
给定一个字符串,输出最长的重复子串举例:ask not what your countrycan do for you,but what youcan do for yourcountry最长的重复子串:can do for you思路:使用后缀数组解决分析:1、由于要求最长公共子序列,则需要找到字...
分类:
其他好文 时间:
2015-09-06 01:05:15
阅读次数:
177
题目大意:RT分析:练手题目....后缀数组确实很强大.....多理解height数组, 切勿使用模版,后缀数组本身就有很多细节,多犯错更有利理解这个算法。代码如下:===================================================================...
分类:
其他好文 时间:
2015-09-04 18:22:14
阅读次数:
174
题目大意:* 有N(1 #include#include#includeusing namespace std;const int MAXN = 2e4+7;const int BaseNum = 90;struct SuffixArr{ int text[MAXN], tempx[MAXN]...
分类:
其他好文 时间:
2015-09-04 14:10:29
阅读次数:
203
【最长重复子串问题】可重叠最长重复子串 -- POJ 3261题意:给出包含n个元素的数组a,问其中最长可重叠重复子串的长度,要求该子串至少重复k次;输入保证至少存在一个重复k次的最长子串;难点:二分查找子串的长度,注意对该长度的子串是否存在K个重复子串的判定方法;代码: 1 /* 2 Prob.....
分类:
编程语言 时间:
2015-08-31 11:45:28
阅读次数:
275
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=36131题意:给出一个长度为n的字符串,要求找到一些i,满足说从1~i为多个个的重复子串构成,并输出子串的个数。题解:对kmp中预处理的数组的理解 //作者:10854...
分类:
其他好文 时间:
2015-08-31 08:46:38
阅读次数:
210
题意:重复子串次数思路:kmp#include#include#includeusing namespace std;#define MaxSize 1000005int next[MaxSize];void GetNext(char t[]){//求next数组 int j,k,len; ...
分类:
其他好文 时间:
2015-08-20 22:27:52
阅读次数:
221