码迷,mamicode.com
首页 >  
搜索关键字:后缀数组    ( 1340个结果
poj 3294
一道非常经典的题目 , 求至少在超过一半的字符串中出现过的最长子串 , 并且按字典序删除 , 方法有很多种 , 后缀数组也可以 , 在绝大多数的后缀数组题目中 , 都要用到二分和分段的思想 ,二分长度,然后依据长度k分段 , 分段即把height数组分成多段 , 使得每一段中 , 如果有多个字符串,...
分类:其他好文   时间:2014-11-19 22:09:11    阅读次数:268
hdu 5008
题目是要求一个字符串中第k小的子串 , 如果想到一个子串必定是一个后缀的前缀 , 那么就可以用后缀数组来解决了 , 后缀数组记录着有序的所有后缀 , 而且每个后缀的不重复的子串数是确定的 , 就是n-sa[i]-height[i] , 如果不理解这个公式, 可以自己对照所有后缀去用笔画 , 既然这个...
分类:其他好文   时间:2014-11-17 22:38:37    阅读次数:239
KMP模板
关于字符串的AC自动机,KMP,Trie树,后缀数组。 KMP是基础。当一个字符串与模式串匹配的时,若失配,利用前面匹配的信息,利用三部分连等关系。可以滑动的“恰如其分”。 Next数组的求法: 若此时求的是next[i]的数值,j位置之前的与从i开始后j-1个字符都是匹配的,若s[i]==s[j] 那么next[++i]=++j; 若不相等可以j=next[j]滑动回去。 OK,那么什么...
分类:其他好文   时间:2014-11-17 21:24:09    阅读次数:164
poj3693 Maximum repetition substring 后缀数组
http://poj.org/problem?id=3693 Maximum repetition substring Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 7241   Accepted: 2162 Description The repe...
分类:编程语言   时间:2014-11-14 00:19:28    阅读次数:338
poj3294 UVA 11107 Life Forms 后缀数组
http://poj.org/problem?id=3294 Life Forms Time Limit: 5000MS   Memory Limit: 65536K Total Submissions: 9931   Accepted: 2739 Description You may have wondered why ...
分类:编程语言   时间:2014-11-13 22:31:32    阅读次数:200
BZOJ 1692 队列变换 贪心+后缀数组
题目大意:给定一个字符串,每次取头或者尾放在新字符串里,求字典序最小的新字符串 首先如果两边的字符不一样 那么肯定要选择小的放在新字符串里 但如果两边一样 比如CCBACC 肯定从尾取比较优 原因是CCA比CCB要小 于是我们把原串反写接在后面变成CCBACC@CCABCC 然后跑一遍后缀数组 每次就能O(1)比较两个子串的大小了 时间复杂度O(nlogn) #include #incl...
分类:编程语言   时间:2014-11-13 16:47:47    阅读次数:211
【BZOJ】1031: [JSOI2007]字符加密Cipher(后缀数组)
http://www.lydsy.com/JudgeOnline/problem.php?id=1031很容易想到这就是将字符串复制到自己末尾然后后缀数组搞出sa然后按区间输出即可。然后换了下模板,将基数排序放到外边#include #include #include #include #inclu...
分类:编程语言   时间:2014-11-13 14:16:56    阅读次数:251
hdu4416 Good Article Good sentence (后缀数组)
题意:问a串中有多少种字符串集合B中没有的连续子串。a的长度10^5,B中的总长度为不超过10^5. 解法:后缀数组题目;后缀数组可以很容易算出来一个串中有多少种子串。把a和B集合连起来,求一次不同子串数量,然后减掉B相互连起来的数量。在求时候,要减掉含有链接符的子串,方法是扫一遍,枚举最后出现的连接符。 代码:/********************************...
分类:编程语言   时间:2014-11-12 19:47:10    阅读次数:312
BZOJ 3172 Tjoi2013 单词 后缀数组
题目大意:给定一个n个单词的文章,求每个单词在文章中的出现次数 文章长度 首先将所有单词用空格连接成一个字符串,记录每个单词的起始位置和长度 然后求后缀数组,对于每个单词后缀数组中一定有连续一段后缀以这个单词开头,我们通过一开始记录的起始位置找到这个单词的后缀,然后左右端点二分答案,满足左右端点之间的后缀与原单词的LCP都当与等于原单词长度即可 时间复杂度O(nlogn) #includ...
分类:编程语言   时间:2014-11-12 15:05:52    阅读次数:823
扩展KMP
给定串S和T,求S的每一个后缀和T的最长公共前缀。方法1:暴力算法,时间复杂度O(n^2);方法2:后缀数组,利用height的性质可以求出该问题,时间复杂度为O(n),但是预处理为O(nlogn)方法3:扩展KMP,充分利用已经匹配过的性质,降低匹配的时间,时间复杂度为O(n)学习资料:http:...
分类:其他好文   时间:2014-11-11 18:16:53    阅读次数:248
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!