后缀数组
撒旦即可
研究CV的菜狗
展开
-
后缀数组height证明
转载自:https://blog.csdn.net/AcTarjan/article/details/82777390 最长公共前缀(Longest Common Prefix) 题目描述:给定一个字符串,求该字符串后缀a和后缀b的最长公共前缀 定义height[i]=k:表示后缀Sa[i]和后缀Sa[i-1]的最长公共前缀的长度为k 定义LCP(a,b):表示后缀a和后缀b的最长公共前缀的...转载 2019-04-01 23:39:38 · 400 阅读 · 0 评论 -
HDU1403(后缀数组,模板,入门)
解题思路:后缀数组的写法一开始看有些匪夷所思,花了我半天时间才解析完,理解内涵。 关于height,详见我的另一篇后缀数组分组中的博客。 也推荐几篇:https://blog.csdn.net/w4149/article/details/72972180(代码解析) https://www.cnblogs.com/shanchuan04/p/5324009.html(原理讲解) https...原创 2019-04-02 00:50:51 · 217 阅读 · 0 评论 -
HDU3518(后缀数组)
题目:大致题意:给出一个字符串,求该字符串的子串能在该串中出现2次以上且不重叠的子串有几种 解题思路:不给原字符串末尾加一个比谁都小的数一直报错,我也是真的不太搞得懂。思路就是不断枚举长度,如果height[j]>=i,那就说明sa[j]和sa[j-1]之间的公共子串的长度高于所规定的的i长度,一定能够找出来长度为i的公共子串。 #include<cstdio> #incl...原创 2019-04-02 17:26:27 · 185 阅读 · 0 评论 -
HDU6194(后缀数组)
题意:告诉你一个字符串和k , 求这个字符串中有多少不同的子串恰好出现了k 次。 解题思路:先用后缀数组进行算出height,然后用ST表维护,然后用区间长为k进行查询,找出最小的height,目的是为了找出k都有的字符串长度,然后区间往左右分别扩展一个单位,目的是看看左右的重复情况,左右的最大值,代表超出K的范围。要注意K=1时是一种特殊情况,具体看代码理解,已经注释。 #include&...原创 2019-04-02 21:57:45 · 207 阅读 · 0 评论