SAM好题,显然我们不能与每个后缀都去算LCP考虑对询问串每一位算贡献,先构建出逆序构建自动机,这样我们得到了原串的后缀树(parent树)根据parent树的定义,一个节点对应字符串出现的位置对应该节点的right集合也就是子树right集合的并,且出现一定是某个后缀的某个前缀某些节点代表了一个后...
分类:
其他好文 时间:
2015-06-05 00:34:52
阅读次数:
283
之前我们给的SAM的例题,基本上是一个串建SAM的就能做的如果要建多个串的SAM应该怎么做呢首先看题,bzoj2780我一开始的想法是SA以前的弄法,把串拼起来,中间加分隔符做SAM这题确实可以这么做,这样根据SAM能识别所有子串的性质而且每个节点都代表了唯一的一个串每个询问串我们都能找到最终转移到...
分类:
其他好文 时间:
2015-05-18 14:18:40
阅读次数:
113
妈呀被后缀数组虐的死去活来。。。一开始去看后缀树。。好像很麻烦的样子,后来再看后缀数组,理论好像很好懂的样子,不会实现呀。。
这充分证明了我有多傻逼,花了整整一天才看懂如何实现,还是因为我基数排序没学好?。。。
(update:然后又花了一天看懂求height。。。)
好好看这张图。。。很重要。。
无脑直接排序的时间复杂度是O(n^2logn)因为字串比较是O(n)
这里介绍...
分类:
编程语言 时间:
2015-04-22 09:33:43
阅读次数:
132
http://acm.whu.edu.cn/land/problem/detail?problem_id=1564思路:先把串复制一遍,在末尾补个标记,后缀树组跑一下,扫一遍就ok了(过滤后缀在后半部分的)。 1 #pragma comment(linker, "/STACK:10240000,1....
分类:
其他好文 时间:
2015-04-22 07:03:04
阅读次数:
103
求本质不同的第k小子串:求出后缀数组,从0开始扫到n-1,到sa[i]为止一共有sum[i]个本质不同的子串sum[i]=sum[i-1]+n-sa[i]-height[i]直到sum[i]>=k为止求第k小子串:构造后缀树,设f[x]表示以x为前缀的子串数目,g[x]表示以x为前缀的后缀数目查询时...
分类:
其他好文 时间:
2015-04-21 17:56:35
阅读次数:
142
str2intTime Limit: 6000/3000 MS (Java/Others)Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 1568Accepted Submission(s): 540Problem De...
分类:
其他好文 时间:
2015-04-07 13:39:31
阅读次数:
135
Trie (字典树)"A", "to", "tea", "ted", "ten", "i", "in", "inn" 这些单词组成的字典树.Radix Tree (基数树)基数树与字典树的区别在于基数树将单词压缩了, 节点变得更少Suffix Tree (后缀树)单词 "BANANA" 的后缀树. ...
分类:
其他好文 时间:
2015-04-06 18:35:44
阅读次数:
212
转自:http://www.acmerblog.com/suffix-array-6150.html 在字符串处理当中,后缀树和后缀数组都是非常有力的工具,其中后缀树大家了解得比较多,关于后缀数组则很少见于国内的资料。其实后缀数组是后缀树的一个非常精巧的替代品,它比后缀树容易编程实现,能够实现...
分类:
编程语言 时间:
2015-03-29 12:05:52
阅读次数:
233
题意:n个数字组成的序列,第一个数字最大,,把序列分成3部分,每个部分分别翻转,输出翻转后字典序最小的序列。。后缀数组变一下,,先求出 第一个分割的位置,,然后再求一次后缀数组,,求出第二个位置。。输出就好了。此题要采用单组输入。。。 1 #include 2 #include 3 #inclu.....
分类:
其他好文 时间:
2015-03-13 00:02:34
阅读次数:
139
之前有篇文章([算法系列之二十]字典树(Trie))我们详细的介绍了字典树。有了这些基础我们就能更好的理解后缀树了。一 引言 模式匹配问题给定一个文本text[0…n-1], 和一个模式串 pattern[0…m-1],写一个函数 search(char pattern[], char text[]), 打印出pattern在text中出现的所有位置(n > m)。这个问题已经有两个经典的算法:...
分类:
编程语言 时间:
2015-02-27 20:16:41
阅读次数:
192