
后缀数组/后缀自动机
jzq233jzq
这个作者很懒,什么都没留下…
展开
-
后缀数组——Luogu2852 [USACO06DEC]牛奶模式Milk Patterns
题面:Luogu2852 题目就是让我们求在串s中出现至少k次的最长子串c 首先Height这个性质还是要用:lcp(x,y)=min(Height[rank[x]]~Height[rank[y]]) 不过这题的rank倒没多大用。。。 然后我们可以二分这个长度l(答案啦),然后利用这个性质贪心 这样就可以求出串s中lcp长度大于等于l的最大连续长度,与k比较一下就好了 就是跑得慢了点原创 2017-06-09 21:02:28 · 593 阅读 · 0 评论 -
后缀数组——BZOJ1031 [JSOI2007]字符加密Cipher
题面:BZOJ1031 题目意思就是让我们按照环排一个序,然后按排序后的顺序输出每个串的最后一个字符 实际上这样的操作我们直接用后缀数组处理一下就好了 具体就是把字符串复制一遍,求出SA数组之后按照SA数组的顺序贪心找下去然后判断输出即可 因为SA数组其实也是一个排序编号的过程嘛。。。 没什么可以多说的了。。。原创 2017-06-08 19:57:49 · 276 阅读 · 0 评论 -
后缀数组(入门)——51nod1732 51nod婚姻介绍所
题面:51nod1732 要死的SA! 今天入门后缀数组,具体的后缀数组教程网上也很多 这里推荐一个:传送门,讲的还不错 听说这题可以用hash直接过,不过的确是SA的入门题哦 这题要我们求的是串s对于x,y的最大公共前缀 掌握SA的基本操作之后这题的答案就是min(Height[rank[x]]~Height[rank[y]]) 然后可以用线段树维护一下,否则T了QAQ#includ原创 2017-06-08 16:59:23 · 440 阅读 · 0 评论 -
后缀数组/AC自动机——BZOJ3172 [Tjoi2013]单词
题面:BZOJ3172 首先把论文给造出来是吧。。。(单词中间加空格好了) 然后在这篇文章(其实是一串字符串)求Height(后缀数组实现) 把Height数组求出来之后我们对于每个单词暴力向左向右找相邻的lcp,如果Height[i]大于等于单词长的话,那么这个串在那个后缀中出现了(而且是在前缀位置),如果小于了那就说明后面的都没有了,直接跳出 因为相邻的Height肯定比不相邻的Heig原创 2017-06-09 14:21:11 · 315 阅读 · 0 评论