KMP算法中也涉及到子串与前缀的重复,而扩展KMP算法求得就是字符串S的所有后缀与字符串T的最长公共前缀 可以知道,一个字符串所有的子串便是这个字符串所有后缀的所有前缀(或前缀的后缀 ),那么求的信息其实也是字符串S的所有子串与字符串T前缀的重复 每个后缀的最长公共前缀长度存在一个extend数组中 ...
分类:
编程语言 时间:
2017-11-25 21:33:30
阅读次数:
216
http://www.lydsy.com/JudgeOnline/problem.php?id=1014 两个后缀的最长公共前缀:二分+hash 带修改带插入:splay维护 1014: [JSOI2008]火星人prefix Description 火星人最近研究了一种操作:求一个字串两个后缀的公 ...
分类:
Web程序 时间:
2017-11-19 12:36:43
阅读次数:
227
T1不难,原图是一棵满二叉树一定连通通过两端点的编号二进制可以找到LCALCA = 两端点编号二进制串的最长公共前缀之后易计算距离 T2期望直接不懂,需要花一天时间学一下期望,不让要是真的出了关于期望的题,可别读不懂题目。N=1, Li=Ri,即只有一张画纸动态规划计算K次操作后最后呈现出每种颜色的 ...
分类:
其他好文 时间:
2017-11-03 21:43:12
阅读次数:
126
14. Longest Common Prefix 14. Longest Common Prefix 14. Longest Common Prefix 14. Longest Common Prefix DescriptionHintsSubmissionsDiscussSolution Des ...
分类:
其他好文 时间:
2017-10-27 20:36:49
阅读次数:
126
题意: 就是在一串数字中,找到连续的一串数字,出现两次的最大长度是多少,大于5输出5,小于5输出0。当然还有变调,就是可能同时大一或者小一。 分析:以后一个数和前一个数字的差成立数据,即可避免变调的情况。然后二分答案,后缀数组,求最长公共前缀height数组即可。 坑点: 在后面补一个0。 我用的是 ...
分类:
其他好文 时间:
2017-10-08 17:22:53
阅读次数:
168
题目链接【http://www.lydsy.com/JudgeOnline/problem.php?id=1212】 题意:给你一些单词,然后给出一个没有标点的文本串S,都是小写字符。现在让你求用给出的单词组成文本串T,求S和T的最长公共前缀。 题解:AC自动机 + 背包,背包dp[i],表示是否能 ...
分类:
编程语言 时间:
2017-10-01 20:33:40
阅读次数:
207
前些天在研究字符串,这里记录一些小技巧以便复习。 1.KMP求最短重复子串 令leng=len-next[len] 若要求完全覆盖,则(len%leng==0)?leng:len; 若不要求完全覆盖,则输出leng 2.Exkmp如何构造extend[]数组 可以发现问题最终转化为求t[i]后缀与t ...
分类:
其他好文 时间:
2017-09-23 17:26:16
阅读次数:
213
http://acm.hdu.edu.cn/showproblem.php?pid=1403 题意:给出两个字符串,求最长公共子串的长度。 思路: 刚开始学后缀数组,确实感觉很难,但是这东西很强大,所以必须要学会它,推荐罗穗骞大牛的论文。 ...
分类:
其他好文 时间:
2017-09-21 22:22:33
阅读次数:
121
题意:求出现恰好 k次的子串(可以重叠)的个数; 分析: 刚开始想到了是后缀数组,但是有什么性质,具体怎么做的没有想到。回到主题来: 连续 k 次,说明这 k 个后缀排序后在一起,每次枚举 长度的为 k 的区间,用RMQ算出最长公共前缀长度,这里就有 len 个子串是 符合满足 k 次的,但是又有可 ...
分类:
编程语言 时间:
2017-09-14 21:36:56
阅读次数:
228
给出模板串S和串T,长度分别为Slen和Tlen,在线性时间内,对于每个S[i](0<=i<Slen),求出S[i..Slen-1]与T的 最长公共前缀长度,记为extend[i],extend[i]存放s[i]开始与T的最长公共前缀长度。 例子 a a a a a a a b b b a a a ...
分类:
其他好文 时间:
2017-09-13 15:20:57
阅读次数:
263