码迷,mamicode.com
首页 >  
搜索关键字:后缀数组    ( 1340个结果
POJ 3693 后缀数组+RMQ
点击打开链接 题意:问连续重复部分最多的串是什么,不能重叠,且我们要字典序最小的串如xbcabcab,有bcabca重复次数为2,cabcab重复次数也为2,那么要前边那个 思路:以前写过一个类似的,SPOJ 687,这个只是求连续重复部分最多的串的次数,并不需要将按字典序最小串输出,那么我们可以用到SPOJ687的代码,用它我们可以求出那个重复的次数和满足这个次数的串的长度,那么就只差找到字...
分类:编程语言   时间:2016-05-18 18:43:57    阅读次数:214
【BZOJ-4278】Tasowanie 后缀数组 + 归并
4278: [ONTAK2015]Tasowanie Description 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T。 给定两个数字串A和B,通过将A和B进行二路归并得到一个新的数字串T,请找到字典序最小的T。 Input 第一行包含一个正整数n(1 ...
分类:编程语言   时间:2016-05-13 13:46:34    阅读次数:212
后缀数组---Musical Theme
POJ 1743 Description A musical melody is represented as a sequence of N (1<=N<=20000)notes that are integers in the range 1..88, each representing a k ...
分类:编程语言   时间:2016-05-13 11:57:27    阅读次数:240
SPOJ 694&705 后缀数组
点击打开链接 题意:问一个串的子串可以有多少种,就是将重复的去掉 思路:每个子串一定是某个后缀的前缀,对于某个后缀sa来说,它的最长前缀就是重复的个数,那么减去就好,而最长前缀可以通过后缀数组的sa数组线性求出 #include #include #include #include #include using namespace std; typedef long long ll...
分类:编程语言   时间:2016-05-13 04:04:47    阅读次数:195
UVA 10829 L-Gap Substrings
题意: 形如UVU这种字符串,其中U、V都是字符串,V的长度为L,那么称此种字符串为L-Gap String,要求的是一个字符串中有多少个子串为L-Gap String。 题解: 网上有很多关于此题的题解,但是都只是说了怎么做的,并没有说为什么是这样。 开始其实也不懂,后面写出来就好像懂了。 大概说一下思路,首先用后缀数组求出lcp是很容易想到的, 我们可以每次枚举U的长度L,那么就可...
分类:其他好文   时间:2016-05-12 23:47:51    阅读次数:307
POJ 1509 后缀数组
点击打开链接 题意:给个串问最小的后缀,但是这个串是个环 思路:是个环也好处理,那么就将串复制一遍加到后面就行了,然后求出后缀数组和高度数组,刚开始我写的是就求出后缀数组sa,然后从排名第1开始找,比如找到了I,排名为I的从第sa[I]开始,那么如果这个值小于输入串的长度,直接输出就行,提交WA,看了看讨论,有这样的数组,aaaa那么应该输出1,而那个程序输出4,然后想到用高度数组,刚开始找到...
分类:编程语言   时间:2016-05-12 23:39:33    阅读次数:192
poj2774两串最长公共子串
http://poj.org/problem?id=2774 思路:后缀数组。(摘自罗穗骞的国家集训队论文)字符串的任何一个子串都是这个字符串的某个后缀的前缀。求 A 和 B 的最长公共子串等价于求 A 的后缀和 B 的后缀的最长公共前缀的最大值。如果枚举A和 B 的所有的后缀,那么这样做显然效率低下。由于要计算 A 的后缀和 B 的后缀的最长公共前缀,所以先将第二个字符串写在第一个字符串后面,中...
分类:其他好文   时间:2016-05-12 15:43:31    阅读次数:243
浅谈后缀数组
1. 概述 后缀数组是一种解决字符串问题的有力工具。相比于后缀树,它更易于实现且占用内存更少。在实际应用中,后缀数组经常用于解决字符串有关的复杂问题。 本文大部分内容摘自参考资料[1][2]。 2. 后缀数组 2.1   几个概念 (1)后缀数组SA 是一个一维数组,它保存1..n 的某个排列SA[1],SA[2],……,SA[n],并且保证Suffix(SA...
分类:编程语言   时间:2016-05-07 11:15:05    阅读次数:224
UVa11107 Lifeform
题目链接UVa11107 Lifeform题解 学了高大上的后缀数组但是还是不怎么会用,关键是版子最开始打错了,害得我必须再重新理解一遍才能找出bug,开始以为是memset(sa,0,sizeof(sa))这句少写了但是并不是这样.话说字符串的题特别容易RE. 这道题二分答案然后后缀数组,先将字符串合并,每个串后加一个奇怪的不相同的字符,二分长度,然后在height数...
分类:其他好文   时间:2016-05-07 10:04:12    阅读次数:166
POJ 3581 后缀数组
点击打开链接 题意:将一个数列分成连续的三段,每段必须有数字,问这三段反转后的数列的最小字典序的方案,并输出,注意:第一个数比后面所有都大 思路:因为第一个数最大,那么将整个数列反转后的字典序最小的后缀为第一段分开位置,但是要判断情况,如最后还要至少剩下两个数完成后两段,接下来找第二段的分开位置,不可以像刚刚那么找了,想这个例子,将第一段去掉后是这样的,1 3 2 1 100 如果和第一次一样...
分类:编程语言   时间:2016-05-07 09:04:17    阅读次数:180
1340条   上一页 1 ... 72 73 74 75 76 ... 134 下一页
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!