![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
Winterfell30
这个作者很懒,什么都没留下…
展开
-
HDOJ 5769 Substring
题意求一个字符串有多少个不同的子串,要求这些子串都包含至少一次x字符。思路如果不考虑包含x字符的话,求不同子串个数是一个后缀数组经典问题(spoj 694)。考虑那个问题的做法:∑leni=1len−sa[i]−lcp[i]\sum_{i=1}^{len}{ len - sa[i] - lcp[i]},len-sa[i]就是sa[i]开头的串的个数,再减去sa[i-1]时减过的lcp[i],累加起来原创 2016-10-25 21:52:06 · 396 阅读 · 0 评论 -
POJ 1743 Musical Theme (二分后缀数组LCP)
题意给出一段长度小于2e4的序列,如果有两个不重叠子段的一一相邻两个数之间变化情况相同就可以说这两段的是相同的theme。小于5视为0。思路首先我们先对序列进行处理,a[i] = a[i+1] - a[i],新序列即为变化情况的数列,问题转化成找到新序列的最长不重叠子段。 二分答案x然后可以利用lcp数组的性质找到所有符合条件的最左起点和最右起点,判断和x的大小关系即可。代码#include <s原创 2016-10-20 18:09:56 · 406 阅读 · 0 评论