摘要: 题意:可重叠的k次最长重复子串。思路:后缀数组。先二分答案,然后将后缀分成若干组。这里要判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k个相同的子串满足条件,否则不存在。时间复杂度为O(nlogn)。/* 后缀数组倍增算法 * 并且计算了height[], height[i] = LCP(i-1, i), LCP(i, j)=lcp(suffix(sa[i]), suffix(sa[j])) * 时间复杂度:N*logN * */#include <cstdio>#include <cstring>#include <algorithm>using 阅读全文
posted @ 2012-08-20 22:36 小猴子、 阅读(291) 评论(0) 推荐(0) 编辑