后缀数组
文章平均质量分 73
# 后缀数组
黑夜和白天
过去无可挽回,未来可以改变
展开
-
后缀数组 + Hash + 二分 or Hash + 二分 + 双指针 求 LCP ---- 2017icpc 青岛 J Suffix (假题!!)
题目链接题目大意:就是给你n个串每个串取一个后缀,要求把串拼起来要求字典序最小!!sum_length_of_n≤5e5sum\_length\_of\_n\leq 5e5sum_length_of_n≤5e5MY Slove :首先我们知道对于最后一个串肯定是取最小后缀的那么我们可以把最后一个串的结果接到倒数第二个串上面在求一次最小后缀就可以得倒数第二个串的结果,依次以此类推就好了。但是这样我们算算复杂度:假如我们每次都把答案拼到下一个串上面求个后缀数组那么我们假设最坏就是a原创 2021-10-28 10:46:43 · 204 阅读 · 0 评论 -
主席树 + 后缀数组求LCP + 二分套二分 ---- P4094 [HEOI2016/TJOI2016]字符串
题目链接题目大意:解题思路:设我们的答案为midmidmid(注意这里有坑是[a,b][a,b][a,b]的所有子串和[c,d][c,d][c,d]这个子串的最长lcplcplcp),那么我们会发现一个很有趣的事实: 如果midmidmid可行的话,那么任意一个比midmidmid小的数也可行也就是说,问题满足可二分性,那么我们可以二分答案,将原问题转化为一个判定性问题:midmidmid这个答案行不行?那么我们发现,如果midmidmid这个答案可以的话,就会存在一个后缀SSS,1.它的原创 2021-08-15 21:57:29 · 118 阅读 · 0 评论 -
后缀数组好博客
大佬博客1大佬博客2原创 2021-05-26 19:03:56 · 67 阅读 · 0 评论 -
后缀数组 ---- 2018~2019icpc焦作H题[后缀数组+st表+二分+单调栈]
题目链接题目大意:给出nnn个数,定义f[l,r]f[l,r]f[l,r]表示 区间[l,r][l,r][l,r]的最大值,求所有 子区间的最大值的和,要求相同的子区间只能算一次比如数列 5 6 5 6 , 区间 [1,2][ 1, 2 ][1,2] 和 [3,4][3,4][3,4]是一模一样的,所以只能算一次。解题思路:1.首先知道我们知道对于后缀数组的里面排好序的两个后缀它们的前缀是很相似的。2.从题目出发因为相同都子串不能计算,那么我们就可以想到后缀数组或者后缀自动机去求。3.我们原创 2021-05-27 19:27:51 · 219 阅读 · 1 评论 -
[Ahoi2013]差异[后缀数组+单调栈]
链接解题思路:很明显前面∑1<=i<j<=nlen(Ti)+len(Tj)\sum_{1<=i<j<=n}len(T_i)+len(T_j)∑1<=i<j<=nlen(Ti)+len(Tj)是定值len∗(len+1)∗(len−1)/2len*(len+1)*(len-1)/2len∗(len+1)∗(len−1)/2那么题目就是变成了求任意两个后缀的lcp求和根据后缀数组的求法lcp(suf(i),suf(j))=min(Heigh原创 2020-08-17 18:43:44 · 237 阅读 · 0 评论 -
2020多校第1场A题【后缀数组+思维】
1.首先我们发现每个后缀开头一定是0,而且开头都是0..[若干个1]..0这种格式,按照字典序的排序方式那么如果两个0之间的1越少字典序就越小。例如aaaaab=>011110,aaab=>0110,那么我们设dis[i]就是第i位开始的往后延申有多少个是和开头字母相同的,如aaab=>dis[]={3,2,1,1};那么dis[i]越小对应数组的字典序一定越小1.首先我们发现每个后缀开头一定是0,而且开头都是0..[若干个1]..0这种格式,按照字典序的排序方式那么如果两个0之间的1..原创 2020-07-28 20:58:56 · 99 阅读 · 0 评论