题目链接:uva 10829 - L-Gap Substrings
题目大意:给定一个字符串,问有多少字符串满足UVU的形式,要求U非空,V的长度为g。
解题思路;对字符串的正序和逆序构建后缀数组,然后枚举U的长度l,每次以长度l分区间,在l和l+d+g所在的两个区间上确定U的最大长度。
#include
#include
#include
#include
using n...
分类:
其他好文 时间:
2014-09-05 23:53:42
阅读次数:
387
题目链接:poj 3693 Maximum repetition substring
题目大意:求一个字符串中循环子串次数最多的子串。
解题思路:对字符串构建后缀数组,然后枚举循环长度,分区间确定。对于一个长度l,每次求出i和i+l的LCP,那么以i为起点,循环子串长度为l的子串的循环次数为LCP/l+1,然后再考虑一下从i-l+1~i之间有没有存在增长的可能性。
#include ...
分类:
其他好文 时间:
2014-09-05 23:53:12
阅读次数:
412
题目链接:uva 10526 - Intellectual Property
题目大意:给定两个文本,问说下面一个文本中在哪些位置上抄袭了上面个一个文本的,输出n个抄袭位置(不足n个情况全部输出),按照长度优先输出,长度相同的输出位置靠前的。
注意:空格,回车都算一个字符;一段字符只能是抄袭上面的一部分,比如上:NSB*SB 下:NSB 答案:NSB。
解题思路:将两个文本连接在一起...
分类:
其他好文 时间:
2014-09-04 23:46:00
阅读次数:
535
题目链接:uva 11855 - Buzzwords
题目大意:给定一个字符串,输出重复子串长度大于1的重复次数(每种长度只算一个次数最多的),并且按照从大到小输出。
解题思路:后缀数组,处理处后缀数组,然后枚举子串长度,按照长度分段即可。
#include
#include
#include
#include
using namespace std;
const int ...
分类:
其他好文 时间:
2014-09-04 23:44:20
阅读次数:
477
思路:这题看了题解说是后缀数组做的,然后自己就偿试了一下,唉……没想到不管是不管是倍增算法的后缀还是DC3算法的后缀都T了,实在无计可施了,可能只有哗然可以过了。不过比赛那天题解说是没有卡后缀的。只是比赛那天自己还不会后缀数组,所以这题自己根本就没有看到。因为后缀自己练得还比较少,这题正好用RMQ求任意两个后缀之间的最长公共前缀,所以自己就拿这题练手了,虽然T了,但是倍增的算法和DC3的算法都贴上...
分类:
其他好文 时间:
2014-09-03 22:44:57
阅读次数:
365
本文讨论了最长公共子串的的相关算法的时间复杂度,然后在后缀数组的基础上提出了一个时间复杂度为o(n^2*logn),空间复杂度为o(n)的算法。该算法虽然不及动态规划和后缀树算法的复杂度低,但其重要的优势在于可以编码简单,代码易于理解,适合快速实现。
分类:
其他好文 时间:
2014-09-03 16:26:16
阅读次数:
309
题目链接:uva 261 - The Window Property
题目大意:给定给一个字符串,枚举子串长度k(len≥k≥1),要求在任意k时,有不超过k+1个不同的子串,如果有的话则输出NO,并且输出最早发现不满足的位置。
解题思路:后缀数组,处理出height数组,对于每个k,遍历height数组,碰到小于k的则分段,将整个height分成若干段,即为有多少种长度为k的不同前缀...
题目链接:uva 12338 - Anti-Rhyme Pairs
题目大意:给定若干个字符串,每次询问两个字符串的最长公共前缀。
解题思路:本来应该将每个字符串连接起来做后缀数组,但其实可以直接把一个字符串看成是一个字符,然后排序了就对应是SA数组,然后处理height即可。然后根据后缀数组的性质,字符串i和j的最长公共前缀长度即为rank[i]+1~rank[j]之间height的...
分类:
其他好文 时间:
2014-09-02 22:54:05
阅读次数:
292
【编程珠玑-15章】Strings of pearls,讲了字符的频率如何统计,以及一个经典问题“字符串中的最大重复子串”...
分类:
其他好文 时间:
2014-09-02 14:17:54
阅读次数:
254
题目链接:uva 11107 - Life Forms
题目大意:给定n个字符串,求一个最长的字符串,为n/2个字符串的子串。
解题思路:后缀数组,处理除后缀数组后,二分长度,每次遍历height数组,当长度不足时就分段,如果存在一段中包含n/2个起点,则为可行长度。
#include
#include
#include
#include
using namespace s...
分类:
其他好文 时间:
2014-09-01 22:48:53
阅读次数:
326