![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
后缀数组
Hany01
这个作者很懒,什么都没留下…
展开
-
【BZOJ 1717】【USACO06DEC】牛奶模式Milk Patterns(后缀数组)
Descriptionclick meSolution后缀数组经典题,直接在height[]上二分即可。另外,ymy巨佬用后缀自动机也A掉了这题,真是太爷啦!!!Code/**************************** * Au: Hany01 * Prob: bzoj1717 * Date: Jan 31st, 2018 * Email:原创 2018-01-31 15:54:14 · 379 阅读 · 0 评论 -
【BZOJ5405】platform(二分,SA,线段树)
Descriptionhttps://www.luogu.org/problemnew/show/P4143Solution先求出后缀数组,考虑一个后缀的每一个前缀,发现名次递减、权值增加,那么它们的图像一定只有一个交点,这个是可以二分的。现在的问题是如何得到一个子串的名次。首先可以通过∑n−heighti−sai∑n−heighti−sai\sum n-height_i-...原创 2018-06-24 15:24:47 · 419 阅读 · 0 评论 -
【BZOJ2119】股市的预测(SA)
Descriptionclick meSolution将题目给出的数组差分一下,题目转化成: 有多少个串满足: 1. 形式为ABAABAABA 2. BBB的长度为mmm跟优秀的拆分类似,我们考虑枚举AAA的长度lenlenlen并设立关键点。 对于关键点iii,我们令j=i+m+lenj=i+m+lenj=i+m+len,求前缀i,ji,ji,j的最长公共后缀ll...原创 2018-05-30 13:49:05 · 329 阅读 · 0 评论 -
【BZOJ4310】跳蚤(后缀数组)
Description将一个字符串分成不超过kkk个子串,在这些子串中选择一个字典序最大的子串(即子串的子串),称为“魔力串”,求一种分法使得“魔力串”字典序最小。Solution非常好的一道后缀数组的题!最大的最小,显然要二分。 考虑二分魔力串的字典序排名,我们先通过排名找到原子串的位置,至于怎么判断一个子串是否合法,我们可以从后往前检查,如果加上当前后缀后字典序大于二分出...原创 2018-04-11 21:15:41 · 253 阅读 · 0 评论 -
【BZOJ3238】【AHOI2013】差异(后缀数组,单调栈)
Description给定长度为nnn的字符串SSS,TiTiT_i表示从第iii个字符开始的后缀,求: ∑1≤i<j≤nlen(Ti)+len(Tj)−2×lcp(Ti,Tj)∑1≤i<j≤nlen(Ti)+len(Tj)−2×lcp(Ti,Tj)\sum_{1\le ilen(Ti)len(Ti)len(T_i)表示后缀TiTiT_i的长度,lcp(Ti,Tj)lcp(Ti,...原创 2018-04-08 20:22:28 · 201 阅读 · 0 评论 -
【BZOJ3879】SvT(后缀数组,单调栈)
Description有一个长度为n的仅包含小写字母的字符串S.现在有若干组询问,对于每一个询问给出若干个后缀,求这些后缀两两之间的LCP的长度之和.Solution先构建出后缀数组,对于每个询问,由于计算的是相邻元素的height,所以我们按照rank排序。(记得去重!!!)然后分别从前、后扫一遍,求出每个元素向左、向右第一个height比它小的元素的位置(用单调栈维护O(n...原创 2018-04-08 19:15:50 · 250 阅读 · 0 评论 -
【BZOJ2754】【SCOI2012】喵星球上的点名(后缀数组)
Descriptionclick meSolution据说AC自动机可做?反正我使用后缀数组做的。。把所有的串连在一起,用一个很大的数分割开来。 求出后缀数组,暴力地在height上找可以匹配的串并计数即可。 (应该是可以被卡的,但是没有出题人那么恶心的吧。。)Source/********************************** * Au: Hany原创 2018-02-06 21:16:49 · 304 阅读 · 0 评论 -
【UOJ131】【BZOJ4199】【NOI2015】品酒大会(后缀数组)
Descriptionclick meSolution先求出height数组XJB乱推式子算出第一问至于第二问,用st表维护每个区间的最大值、最小值,每次用可计入贡献的区间中的两个最大值的积、两个最小值的积更新即可。具体实现细节参看代码。Source/********************************** * Au: Hany01 * Prob:原创 2018-02-05 21:37:47 · 230 阅读 · 0 评论 -
【UOJ 219】【BZOJ 4650】【NOI 2016】优秀的拆分(后缀数组)
Descriptionclick meSolution2.1先考虑找到所有形如AA的串的位置: 枚举长度lenlenlen,找到关键点lenlenlen,2len2len2len,3len3len3len⋯⋯\cdots 发现所有长度为lenlenlen的A的AA串都经过了其中两个关键点。 令l=k×lenl=k×lenl=k\times len,r=(k+1)×le...原创 2018-02-01 15:01:16 · 239 阅读 · 0 评论 -
后缀数组板子
重学后缀数组,写完发现常数莫名比以前小了一半,玄学。/**************************** * Au: Hany01 * Prob: Suffix Array * Date: Jan 30th, 2018 * Email: hany01@foxmail.com****************************/#include<bits/std...原创 2018-01-04 21:41:23 · 214 阅读 · 0 评论 -
【BZOJ1031】【JSOI2007】字符加密(SA)
Description喜欢钻研问题的JS 同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法。例如‘JSOI07’,可以读作: JSOI07 SOI07J OI07JS I07JSO 07JSOI 7JSOI0 把它们按照字符串的大小排序: 07JSOI 7JSOI0 I07JSO JSOI07 OI07...原创 2018-07-02 21:26:54 · 186 阅读 · 0 评论