![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
lixuwei2333
这个作者很懒,什么都没留下…
展开
-
后缀数组模板【求不同字串的个数】
ldq链接:https://li-fish.github.io/2018/05/03/cjqx5558400d04kc2v3xgtu1d/ sa[i]表示排名为i的后缀位置 rank[i]表示以suf(i)的排名 height[i]表示suf(sa[i])和suf(sa[i-1])的最长公共前缀 ch下标从0开始,n是ch的长度 #include <bits/stdc++.h...原创 2019-02-16 15:05:18 · 196 阅读 · 0 评论 -
Milk Patterns 【不可重叠最长重复子串】
二分字串长度 然后按照height将后缀分割分组,对于每一组选择最左和最右的后缀,判断是否重合。 题目链接 本题需要先差分,然后再去头,“不重合”的条件为相隔至少为1。 #include <iostream> #include <algorithm> #include <cstdlib> #include <cstring> #inclu...原创 2019-02-16 17:23:05 · 320 阅读 · 0 评论 -
POJ 3261 Milk Patterns 【求可重叠至少出现k次的最长重复子串】
模板题,二分长度,然后根据height分组进行验证。 #include <iostream> #include <algorithm> #include <cstdlib> #include <cstring> #include <cstdio> #include <bits/stdc++.h> using namespa...原创 2019-02-16 20:11:05 · 108 阅读 · 0 评论 -
spoj687 【重复次数最多的连续重复子串】
题目链接:https://vjudge.net/problem/SPOJ-REPEATS 推荐博客:https://blog.csdn.net/queuelovestack/article/details/53031731 #include <iostream> #include <algorithm> #include <cstdlib> #incl...原创 2019-02-17 10:35:42 · 679 阅读 · 0 评论 -
最长公共字串(线性复杂度)
将两个字符串连接起来,中间插入分割符。 按照后缀的位置,将后缀分为两类。 遍历一遍height,求排名相邻的不同类后缀的最长公共前缀的最大值。 ps:简单思考可得,答案不会是非相邻的不同类后缀的最长公共前缀。 #include <iostream> #include <algorithm> #include <cstdlib> #include ...原创 2019-02-17 10:52:56 · 251 阅读 · 0 评论 -
Candies 【后缀数组】【主席树】
题目链接:https://vjudge.net/problem/Gym-102302K 前置技能:后缀数组处理本质不同的字串。 #include <bits/stdc++.h> #define rep(i, a, b) for(int i = (a); i <= (b); i++) #define per(i, a, b) for(int i = (a); i >= ...原创 2019-08-27 16:42:42 · 154 阅读 · 0 评论 -
CCPC2019网络赛 array【后缀数组】【主席树】【线段树上二分】
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6703 #include <bits/stdc++.h> #define rep(i, a, b) for(int i = (a); i <= (b); i++) #define per(i, a, b) for(int i = (a); i >= (b); i++) #de...原创 2019-08-27 16:50:38 · 301 阅读 · 0 评论