后缀数组 & 后缀自动机
nixinyis
这个作者很懒,什么都没留下…
展开
-
POJ 2774 & URAL 1517(最长公共子串)
题目链接:URAL-1517 POJ-2774题目大意:就是给两个字符串,求最长公共子串。解题思路:法一:常规动态规划好像是可以的(虽然我自己没试(~ ̄▽ ̄)~) 因为常规的LCS是O(n^2)的,所以讲LCS转化成LIS,就可以在O(n log n)的时间内完成。 具体的讲解看:LCS的nlogn法法二:后缀数组这个方法非常好,好像处理后缀数组可以使用O(n)或O(n log n) 不过后原创 2017-02-05 12:00:02 · 309 阅读 · 0 评论 -
POJ 2406(连续重复子串)
题目链接:POJ 2406 Power Strings题目大意:给一个字符串L,已知该字符串由某个字符串S重复r次得到,求r最大值。 解题思路:法一:- 可以使用后缀数组解决。 - 想法非常简单,就是穷举字符串S的长度k,然后判断是否满足。 1. 看字符串L的长度能否被k整除 2. 看suffix(1)和suffix(k+1)的最长公共前缀和是否等于n-k - 询问时,因为suffi原创 2017-02-03 11:03:43 · 895 阅读 · 0 评论 -
后缀数组(UVa11107)
第一次写后缀数组啦啦啦。。。 对于后缀数组的认知问题,我们还是看看大神罗穗骞的论文吧:《后缀数组--处理字符串的有力工具》 好,那下面我来提一提模板题UVa11107的解法: 题目链接:UVA-11107 题目大意:n个字符串,求长度最大字符串,要求在超过一半的字符串中出现。 题解: 1、先在中间用分隔符把他们拼成一个长字符串,求出他的后缀数组和height数组。 2、二分答原创 2017-01-30 16:52:53 · 979 阅读 · 0 评论 -
【BZOJ 2946】【POI 2000】公共串【后缀数组】【裸】
Description给出几个由小写字母构成的单词,求它们最长的公共子串的长度。 任务: l 读入单词 l 计算最长公共子串的长度 l 输出结果Input文件的第一行是整数 n,1<=n<=5,表示单词的数量。接下来n行每行一个单词,只由小写字母组成,单词的长度至少为1,最大为2000。 Output仅一行,一个整数,最长公共子串的长度。题解今天遇到原创 2017-03-22 21:05:35 · 395 阅读 · 0 评论