码迷,mamicode.com
首页 >  
搜索关键字:lcp    ( 302个结果
bzoj 2865 字符串识别——后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2865 做出 ht[ ] 之后,sa[ ] 上每个位置和它前面与后面取 LCP ,其中较大的长度设为 d ,表示从 sa[ i ] 位置开始的子串的右端点要在 sa[ i ]+d-1 位置之后才 ...
分类:编程语言   时间:2018-12-08 17:03:25    阅读次数:238
bzoj 2865 字符串识别 —— 后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2865 唯一出现的子串就是每个后缀除去和别的后缀最长的 LCP 之外的前缀; 所以用这个更新一段区间的答案,可以用线段树维护; 在 sa[i] ~ sa[i]+LCP+1 位置的答案由 LCP+ ...
分类:编程语言   时间:2018-12-08 16:59:25    阅读次数:213
bzoj 3230 相似子串——后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3230 作出后缀数组,从 LCP 看每个位置对于本质不同子串的贡献,而且他们已经按前面部分排好序了,所以直接在 sa[ ] 上二分就能找到询问的子串。 找最长公共前缀就用 ht[ ] 和子串的长 ...
分类:编程语言   时间:2018-12-07 18:26:03    阅读次数:170
后缀数组入门(二)——Height数组与LCP
这篇博客的内容,主要建立于后缀排序的基础之上,进一步研究一个$Height$数组以及如何求$LCP$。 ...
分类:编程语言   时间:2018-12-03 21:03:05    阅读次数:239
[AHOI 2013] 差异
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3238 [算法] 首先 , LCP(Ti , Tj) = min{ height[rank[Ti] + 1] , height[rank[Ti] + 2] , ... , height[ ...
分类:其他好文   时间:2018-12-01 00:18:05    阅读次数:160
Luogu-3966 [TJOI2013]单词
这道题应该是后缀数组的套路题啊,把单词连接起来,中间用没有出现过且互不相同的字符来分隔开,求一下$height$数组。 对于一个单词来说,设单词长$len$,所在的后缀为$i$,如果某后缀$j$满足$lcp(i,j)==len$,则$j$的前缀与这个单词相等。因为和$i$的$lcp$大小是从$i$向 ...
分类:其他好文   时间:2018-11-30 11:16:03    阅读次数:212
后缀数组(无讲解)
BZO2754: [SCOI2012]喵星球上的点名 "题目链接" 分析: 把姓和名中间用一个分隔符分开,和询问串一起建立后缀数组。 后缀数组上每个位置存对应串的标号。对于一个询问串(T),找到他对应的位置。 考虑和他的lcp =len(T)的位置都是合法的。左右二分/倍增提取出这样的区间。 那么第 ...
分类:编程语言   时间:2018-11-25 13:27:36    阅读次数:167
bzoj 3238: [Ahoi2013]差异【SAM+树形dp】
首先只有lcp(i,j)需要考虑 因为SAM的parent树是后缀的前缀的最长公共后缀(……),所以把这个串倒过来建SAM,这样就变成了求两个前缀的最长公共后缀,长度就是这两个前缀在parent树上的lcs对应的最大长度dis 这里用treedp解决即可,就是合并一下size cpp include ...
分类:其他好文   时间:2018-11-23 22:28:49    阅读次数:226
bzoj3879: SvT
题意:给一个字符串,多组查询,一些后缀两两的lcp长度和,查询个数和不超过1e6 题解:svt就是后缀虚树,suffix virtual tree,考虑后缀树lca求lcp长度,但是查询次数可能很多,不能每次遍历,所以要建出虚数后在虚树上dp,对于一个节点考虑算贡献,对于所有子树,两两算个数乘积乘上 ...
分类:其他好文   时间:2018-11-02 17:59:09    阅读次数:143
luogu2178/bzoj4199 品酒大会 (SA+单调栈)
他要求的就是lcp(x,y)>=i的(x,y)的个数和a[x]*a[y]的最大值 做一下后缀和,就只要求lcp=i的了 既然lcp(x,y)=min(h[rank[x]+1],..,[h[rank[y]]]) 那么我们求出来对于每一个h,以它作为最小值的区间的左右端点就可以了,这个可以用单调栈,具体 ...
分类:其他好文   时间:2018-10-22 22:21:47    阅读次数:277
302条   上一页 1 ... 7 8 9 10 11 ... 31 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!