后缀数组
neofung
这个作者很懒,什么都没留下…
展开
-
POJ3261 Milk Patterns,后缀数组, 出现k次的重复子串
也是根据height来计算前缀,同时利用二分来检索答案,根据每次二分的最少长度来给height来分组/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified原创 2012-06-02 22:02:52 · 989 阅读 · 0 评论 -
POJ1743 Musical Theme,后缀数组,最长重复不重叠子串,二分检索答案
开始进入后缀数组的学习。首先分析输入和题目,可以把数组转化为相邻两个元素的差,然后题目就转化为求最长不重叠子串的长度。因为数组转化为两个元素的差,所以需要在新数组的最后补上一个元素0,同时最长长度要+1方为答案。而后缀数组的资料可以参考罗穗骞的论文,本人在这里就不献丑了。P.S. 因为元素之差可能为负数,所以需要同时加上一个数使得新数组的元素均为正,同时注意倍增算法Doubling原创 2012-06-02 16:34:30 · 853 阅读 · 0 评论 -
SPOJ694 Distinct Substrings, 后缀数组, 不相同的子串的个数
这里引用的是罗穗骞论文中关于不相同子串个数的解法:“每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。如果所有的后缀按照 suffix(sa[1]), suffix(sa[2]),suffix(sa[3]), …… ,suffix(sa[n])的顺序计算,不难发现,对于每一次新加进来的后缀 suffix(sa[k]),它将产生 n-sa[k]+1 个新的前缀。但原创 2012-06-03 09:53:57 · 731 阅读 · 0 评论 -
Ural1517 Freedom of choice, 后缀数组,最长公共子串
也是看后缀数组中的套题。。。/******************************************************************************* # Author : Neo Fung # Email : neosfung@gmail.com # Last modified: 2012-06-05 21:27 # Filename:原创 2012-06-05 21:37:59 · 676 阅读 · 0 评论 -
一个一万字长的连续字符串,找出其所有子串,并统计子串的出现次数
详情可以参考罗穗骞关于后缀数组的论文,这里给出代码:/* * ===================================================================================== * * Filename: acm.cpp * * Description: 一个一万字长的连续字符串,找出其所有子串,并原创 2013-05-06 21:49:12 · 1085 阅读 · 0 评论