题意:给定上一个串,问你多少种UVU这一种形式的串,其中U不为空并且V的长度给定了。 析:枚举 U 的长度L,那么U一定是经过 0 L 2L 3L .... 其中的一个,所以求两个长度反lcp,一个向前延伸lcp1,一个向后延伸lcp2,然后加起来,要保证每个都不超过L,否则就会重复,然后个数就是 ...
分类:
编程语言 时间:
2017-10-05 12:23:52
阅读次数:
150
http://poj.org/problem?id=3415 题意:求长度不小于K的公共子串的个数。 思路:好题!!!拉丁字母让我Wa了好久!!单调栈又让我理解了好久!!太弱啊!! 最简单的就是暴力枚举,算出LCP,那么这个LCP对答案的贡献就是$x-k+1$。 我们可以将height进行分组,大于 ...
分类:
编程语言 时间:
2017-10-03 12:40:31
阅读次数:
141
扩展KMP可以快速求出T与S每个后缀的LCP,时间复杂度和空间复杂度都比后缀数组要优良很多。 ...
分类:
其他好文 时间:
2017-10-02 17:16:14
阅读次数:
136
链接:http://uoj.ac/problem/219 题意:找出字符串之中所有符合$AABB$形式子串的划分方式。 这道题正解是$SA$……我不会…… 然而二分+$Hash$可过……可过…… 首先我们枚举每一个$A$的长度,然后我们二分长度搞出来各个位置与上一段的$LCS$,$LCP$长度。随后 ...
分类:
其他好文 时间:
2017-09-24 22:17:08
阅读次数:
249
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1014 题意:动态修改字符串,动态查询某两个后缀之间的$LCP$长度。 这题肯定一堆人刚开始:$woc$这题好水啊,后缀数据结构放肆撸啊…… 等看到后半段:$woc$这个修改怎么改啊…… 实际上这 ...
分类:
其他好文 时间:
2017-09-24 22:16:25
阅读次数:
262
对于重复次数,如果确定了重复子串的长度len,那重复次数k=lcp(start,start+len)/len+1。而暴力枚举start和len的复杂度是O(n^2),不能接受。而有一个规律,若我们只枚举len的整数倍作为起始,如果将它向前移动小于len位可以构成重复次数更长的串,那么那个位置p=st ...
分类:
编程语言 时间:
2017-09-21 21:11:17
阅读次数:
191
最少出现K次我们可以用Height数组的lcp来得出,而恰好出现K次,我们只要除去最少出现K+1次的lcp即可。 ...
分类:
编程语言 时间:
2017-09-19 19:46:02
阅读次数:
212
链接: codeforces.com/contest/432/problem/D 题意: 给你一个字符串,求每一个和前缀匹配的后缀在这个字符串中出现的次数 题解: 先算出lcp,找到sa[i]==0的位置标记为beg,和前缀匹配的后缀一定会出现beg的左边,这个想一想明白了 我们先算出beg左边每一 ...
分类:
编程语言 时间:
2017-09-15 13:53:04
阅读次数:
195
后缀数组+kmp+set 前两个条件很好搞,后缀数组求lcp然后看相邻两个后缀是不是分别属于不同的串,是的话所有lcp的max就是答案,但是现在有了第三个限制就很麻烦了。 我们先把第三个串在第一个串上跑kmp,把所有匹配位置的结束点放进set里,然后像之前一样查lcp,每次查的时候在set里查询当前 ...
分类:
其他好文 时间:
2017-09-15 10:06:50
阅读次数:
107
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3238 【题目大意】 给出一个串,设T[i]表示从第i位开始的后缀, 求sum(len(T[i])+len(T[j])-2*lcp(T[i],T[j])) 【题解】 根据反串的后缀自动机建 ...
分类:
其他好文 时间:
2017-09-14 16:51:32
阅读次数:
148