后缀数组
H煊
缓一会儿。。。
展开
-
字符串匹配(后缀数组)
假设已经求出字符串S的后缀数组点击打开链接,现在要求字符串T在字符串S中出现的位置,只要通过二分搜索就可以在O(T*logS)时间内完成。当S比较大时,比O(T+S)的算法更为高效,所以需要对同样的字符串做多次匹配时,该算法更有优势。 代码: bool contain(string S,int *sa,string T) { int a=0,b=S.length();原创 2017-09-08 13:38:04 · 1430 阅读 · 0 评论 -
POJ 3581 Sequence(后缀数组)
题意: N个数字组成的序列A1,A2,A3...An。其中,A1最大,现在要把整个序列分成三段,并将三段反转,求能得到的字典序最小的序列是什么?要求分得的每段都不为空。 第一段分割比较简单,反转利用后缀数组即可;剩余的二三段不是独立的,不能光比较前半部分的字典序取其中最小者,我们可以反转二三段并重复2次,再计算其后缀数组,且sa[0]的开始位置应在序列的前半部分,这样,二三段就是按整体原创 2017-09-08 14:53:37 · 174 阅读 · 0 评论