??
题意:给定两个字符串A 和B,求最长公共子串。
思路:将两个字符串连接起来中间用一个没出现过的符号分割,
所以答案为满足后缀在不同的串中且height值最大的height值
#include
#include
#include
#include
#include
#include
#include
#include
#include
#includ...
分类:
编程语言 时间:
2015-07-17 18:49:27
阅读次数:
137
题目:求一个字符串中所有不同子串个数
后缀数组经典题,每一个子串一定是某个后缀的前缀,那么问题便等价于求所有后缀之间的不相同的前缀个数。我们按sa的顺序来考虑,当加入sa[k]的时候,sa[k]这个后缀的长度为n-sa[k]-1,那么便有n-sa[k]-1个前缀,但是由heigh数组可知sa[k]与sa[k-1]有height[k]个前缀是相同的,所以要除去。
注意的是这道题题意有点坑,一开始...
分类:
编程语言 时间:
2015-07-16 22:27:50
阅读次数:
136
??
题意:给出一段只有音高(整数表示),没有节奏的乐谱,问其中最长的曲调相同的没有重叠的两段的长度是多少。
思路是首先对相邻元素做差并平移,那么问题就转化为了求一个字符串的不可重叠最长重复子串。
注意有两个坑,首先n为1时要特判因为height数组表示的是相邻sa的最长公共前缀。
其次用cin会超时。注意这两个问题后这道题就比较容易了。
#include
#include
#i...
分类:
编程语言 时间:
2015-07-16 16:46:18
阅读次数:
101
模板:
1.快排:
var
rank,height,h:array [0..300000] of qword;
//rank[i]:i的后缀的排名;
//height[i]:lcp(s[a[i,2]...len],s[a[i-1,2]...len]);
//h[i]:lcp(s[i...len],s[a[rank[i]-1,2]...len]);
//...
分类:
编程语言 时间:
2015-07-14 22:47:39
阅读次数:
238
解题思路例如字符串“abababc”,最多连续出现的为ab,连续出现三次。要和求一个字符串中的最长重复子串区分开来,还是上面的字符串,那么最长的重复子串为abab。两个题目的解法有些类似,都用到了后缀数组这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生成后缀数组例如上面的字符串为:abababc
bababc
ababc
babc
abc
bc
c可以看出第一个后缀数组和第三个后缀数组的...
分类:
其他好文 时间:
2015-07-14 22:40:05
阅读次数:
250
感觉后缀数组很难学的说= =不过总算是啃下来了首先 我们需要理解一下倍增法构造的原理设原串的长度为n 对于每个子串 我们将它用'\0'补成长度为2^k的串(2^k-1#include #include #include #define rep(i,n) for(int i=1;iy?x:y)#def...
分类:
编程语言 时间:
2015-07-11 14:55:44
阅读次数:
127
Problem Description
Now you are back,and have a task to do:
Given you a string s consist of lower-case English letters only,denote f(s) as the number of distinct sub-string of s.
And you have som...
分类:
编程语言 时间:
2015-07-05 23:58:10
阅读次数:
557
后缀数组是根据一个给定的字符串,然后取这个字符串的所有后缀,然后将后缀排序,生成两个数组,sa数组和rank数组sa[i]存的是排名第i的字符串下标rank[i]存的是以下标i开头的后缀的排名所以sa[rank[i]] = i rank[sa[i]] = i由于字符串的比较是多关键字比较,如果用s....
分类:
编程语言 时间:
2015-06-27 19:38:57
阅读次数:
110
Description
FlyBrother is a superman, therefore he is always busy saving the world.
To graduate from NUDT is boring but necessary for him. Typically We need to post an paper to get Graduate Cer...
分类:
编程语言 时间:
2015-06-22 22:20:59
阅读次数:
262