后缀数组
文章平均质量分 88
kkkkahlua
这个作者很懒,什么都没留下…
展开
-
HDU 6194 string string string 后缀数组+rmq
题目链接题意问一个字符串有多少个子串出现恰好 kk 次思路求出 heightheight 数组后,对于相邻的 kk 个后缀,它们包含恰好出现 kk 次的子串当且仅当 k−1k-1 个 heightheight 值中的最小值 >\gt max{max\{其中第一个与前一个的公共前缀,其中最后一个与后一个的公共前缀}\},差值即为这一段的个数。遍历一遍统计即可,最小值用 rmqrmq。注意 k=1k=1原创 2017-09-15 19:20:47 · 248 阅读 · 0 评论 -
后缀数组倍增算法模板详解
参考2009国家集训队论文 后缀数组——处理字符串的有力工具 ——罗穗骞模板bool cmp(int* r, int a, int b, int l) { return r[a] == r[b] && r[a+l] == r[b+l]; }void init(int* r, int* sa, int n, int m) { int* x=wa, *y=wb, *t, i, j, p;原创 2017-09-15 13:39:45 · 554 阅读 · 0 评论