后缀数组
outer_form
OI/ACM
展开
-
【后缀数组】[UVA10829]L-Gap substring
题目 分析,这道题很显然要找两个相同的字串,也就是两个后缀公共前缀,很自然地可以想到,可以使用后缀数组。 所谓的L-Gap字串,就是两个相同的字串,中间间隔了g个字符,所以,我们枚举这两个字串的长度l,然后看0和l,l和l*2…..分别从这两个位置向前和向后匹配,匹配的长度减去l就是这个位置对答案的贡献。#include<cstdio> #include<cstring> #include<cm原创 2015-12-28 13:26:30 · 1529 阅读 · 1 评论 -
【后缀数组】[POJ1743]Musical Theme 乐曲主旋律
题目: 后缀数组模板题,做法参见罗穗骞论文。 自认为代码写得比较好看。#include<cstdio> #include<algorithm> #include<cstring> using namespace std; #define MAXN 500000 #define MAXD 200 int array[4][MAXN*2+10],height[MAXN+10],ans; int *n原创 2015-12-14 13:47:36 · 1304 阅读 · 1 评论 -
【后缀数组】[NOI2016]优秀的拆分
题目描述如果一个字符串可以被拆分为 AABBAABB 的形式,其中 AA 和 BB 是任意非空字符串,则我们称该字符串的这种拆分是优秀的。例如,对于字符串 aabaabaa,如果令 A=aabA = \mathrm{aab},B=aB = \mathrm{a},我们就找到了这个字符串拆分成 AABBAABB 的一种方式。一个字符串可能没有优秀的拆分,也可能存在不止一种优秀的拆分。比如我们令 A=aA原创 2016-07-31 17:06:20 · 2799 阅读 · 0 评论