poj3261
题意:给一个字符串,要求找出至少出现k次的最长重复子串…
思路:后缀数组,然后再次用到了根据height数组对后缀进行分组的套路…二分判定合法性,对于当前的最长长度x,分组使得每组中的height[i]都大于等于x,所不同的是,判定变成了存在一个组,后缀的个数至少为k个(因为这样,就可以对于大于等于k个的后缀,同时取前x长度,得到的就是出现了至少k次且长度为x的前缀)1A,蛤蛤蛤
poj 1743
题意:n 个数字(1..88)表示的音符,问最长的连续两段长度至少为 5 的变化相同的音符段的长度。
思路:求最长重复字串,很容易想到后缀数组,但是这道题多了一个不可重叠的要求。
ural1517 题意:给出两个字符串,求最长的公共字串(要求出具体的字符串是什么)
思路:依然是后缀数组,在更新长度 的时候记录起始位置即可,1A。以及,发现多开了一个完全没有必要的数组w[],这次已删。
poj 2774
题意:给出两个字符串,问最长的公共连续字串。
思路:后缀数组模板题。
具体可以参考两篇国集论文(09,04) topcoder中的讲解 codechef上的讲解 还有一篇讲 dc3算法的论文: 这里不谈具体的后缀数组的学习内容,说说大概的学习过程。