st表
文章平均质量分 55
Clove_unique
All that you have lost can be won back bit by bit as long as you wish for it.
展开
-
RMQ (Range Minimum/Maximum Query)算法
WA转载 2016-02-02 14:26:24 · 527 阅读 · 0 评论 -
[BZOJ4698][Sdoi2008]Sandy的卡片(后缀数组+st表||后缀自动机)
题目描述传送门题目大意:给出n个长度为mi的串,求趋势相同的最长公共子串题解将前后两个数差分之后就是一个裸的最长公共子串问题了 将所有的串怼在一起求sa和height,然后用一个指针扫出来至少含有n个串的代码#include#include#include#include#includeusing namespace std;#define N 20000原创 2017-04-16 21:44:23 · 811 阅读 · 0 评论 -
[BZOJ2534]Uva10829L-gap字符串(后缀数组+st表)
题目描述传送门题目大意:求字符串s中有多少子串,满足形如ABA形式,其中A是非空字符串,且B的长度正好为L题解这道题和股市的预测实际上时一样的…不过现在忘得快干净了… B的长度已知是L,首先枚举A的长度i 然后将整个字符串按照长度为i分块,枚举每一个块的端点,设为l,令r=l+i+m,然后对l和r求lcp和lcs,可以发现长度为i+L+i的子串在长度为lcp+lcs的范围内滑动都是合法的,所以对原创 2017-04-18 08:59:10 · 1100 阅读 · 0 评论 -
[BZOJ3784]树上的路径(点分治+dfs序+st表+堆)
题目描述传送门题解这道题并不是像普通的点分一样现在根上加然后在儿子上把不合法的减去,而是直接只能查询合法的,这种思维定式要改一改了。。。 刚开始一直在往这方面考虑。。直到看到有人说这道题和超级钢琴那道题很像才受到启发yy出这种不靠谱的的做法。。。首先从当前根出发到每一个点都求出了一条路径,那么怎么组合是合法的呢?就是路径的两个端点不能在根的同一个儿子里 是否在同一个儿子里可以用dfs序来区分,那原创 2017-02-15 23:50:42 · 741 阅读 · 0 评论 -
[BZOJ4556][Tjoi2016&Heoi2016]字符串(后缀数组+二分+st表+主席树)
题目描述传送门题解思路清晰就很好写… 首先二分答案mid 找到Suffix(c),在height数组中向左向右分别二分最远的lcp为mid的后缀 用st表实现O(1)O(1)查询 然后就判断[l,r]中是否出现了a…b的后缀 用可持久化线段树判断即可常数大,需要卡卡常数 学习了学姐的一个方法就是这种只需要判断有没有数的不用求具体几个的就只要有数了就返回,不做无用功然后说一下如何在heig原创 2017-01-11 14:52:00 · 903 阅读 · 0 评论 -
[BZOJ3230]相似子串(后缀数组+二分+st表)
题目描述传送门题解题目实际上是要求最长公共前缀和后缀的长度的平方和。个人认为题目描述中a和b应该取min 把这个串正反都求一下sa和height 由于是本质不同的子串,所以每一个后缀的贡献应该是当前串刨去它和前一个的lcp的剩下的前缀 可以求出贡献的前缀和,显然满足单调性 对于每组询问,二分找出这两个子串在rank里的位置,然后用rmq求区间最小值 再找出这两个子串的结尾的位置,在反串那边原创 2016-12-28 11:30:35 · 956 阅读 · 3 评论 -
[BZOJ3277]串(后缀数组+二分+st表)
题目描述传送门题解orz hxy sam随便艹 不过我感觉这道题用sa的做法非常厉害吖 由于每一个子串一定是某一个后缀的前缀,所以可以对于每一个后缀求其对答案能贡献多少个子串,也就是这个后缀有多少个满足题意的前缀。同时可以发现,对于同一个后缀SiS_i,如果Si,jS_{i,j}满足题意那么Si,i...Si,jS_{i,i}...S_{i,j}都满足题意,也就是说这个贡献的值也是满足单调性的,原创 2016-12-27 18:59:14 · 1228 阅读 · 0 评论 -
[POJ3693]Maximum repetition substring(后缀数组+st)
题目描述传送门 题意:给定一个字符串,求重复次数最多的连续重复子串。输出满足题意的子串,如果有多个,输出字典序最小的。题解先枚举长度 L ,然后求长度为 L 的子串最多能连续出现几次。首先连续出现 1 次是肯定可以的,所以这里只考虑至少 2 次的情况。假设在原字符串中连续出现 2 次,记这个子字符串为 S ,那么 S 肯定包括了字符 r[0], r[L], r[L*2], r[L*3], …… 中原创 2016-12-26 11:36:16 · 592 阅读 · 0 评论 -
[SPOJ687]REPEATS - Repeats(后缀数组+st)
题目描述传送门 题意:给定一个字符串,求重复次数最多的连续重复子串。题解先枚举长度 L ,然后求长度为 L 的子串最多能连续出现几次。首先连续出现 1 次是肯定可以的,所以这里只考虑至少 2 次的情况。假设在原字符串中连续出现 2 次,记这个子字符串为 S ,那么 S 肯定包括了字符 r[0], r[L], r[L*2], r[L*3], …… 中的某相邻的两个。所以只须看字符 r[L*i] 和原创 2016-12-26 11:29:14 · 735 阅读 · 0 评论 -
[BZOJ4582][Usaco2016 Open]Diamond Collector(二分+st表)
题目描述传送门题解先排序是显然的吧= = 求出每一个点它向右能连续放到一个架子上的最右的一端和最长长度,因为是满足单调性的,其实扫一遍就可以,然而我当时dt写了个二分。。 然后对于一个点,再求它最右端的右边一直到n的最长长度的最大值。又写了个st表。。实际上从右向左扫一遍就可以。。。代码#include<algorithm>#include<iostream>#include<cstring原创 2016-11-16 14:30:02 · 579 阅读 · 0 评论 -
[Codeforces#475D]CGCDSSQ(st表+二分+数学相关)
题目描述传送门 题意:对于每一个xix_i求存在多少(l,r)(l,r)满足gcd(al,al+1...,ar)=xigcd(a_l,a_{l+1}...,a_r)=x_i题解设g(l,r)=gcd(al,al+1...,ar)g(l,r)=gcd(a_l,a_{l+1}...,a_r),那么有一个非常重要的性质: g(l,r),g(l,r+1),g(l,r+2)...g(l,r),g(l,r+原创 2016-11-08 11:13:36 · 585 阅读 · 1 评论 -
[poj3264] Balanced Lineup(st表)
时间是一只藏在黑暗中温柔的手,在你一出神一恍惚之间,物走星移。原创 2016-02-02 15:44:55 · 577 阅读 · 0 评论 -
[BZOJ4569][Scoi2016]萌萌哒(并查集+st表)
我不知道什么叫年少轻狂,我只知道什么叫胜者为王。原创 2016-08-02 20:16:38 · 768 阅读 · 0 评论 -
[BZOJ2006][NOI2010]超级钢琴(st表+heap)
题目描述传送门题解首先考虑如果k=1的时候如何来做。当k=1时,也就是只选出来一个最大值就可以了,我们可以枚举区间的起点,每一个起点对应的一个区间长度合法的区间,从这段区间里找出来一个前缀和最大的然后减去起点的就可以了。 但是如果k>1的话,我们不能只找一个最大的。那么可以考虑维护一个大根堆,每次弹出堆中最大的元素来,弹k次。还是像k=1时那样,每次找出来一个最大值,然后压到堆里。每次从堆中弹出一原创 2016-11-08 08:27:07 · 646 阅读 · 0 评论 -
[BZOJ2119]股市的预测(后缀数组+st表)
唯有痛彻,才能迎来真正的涅槃。原创 2016-08-16 22:49:29 · 1330 阅读 · 0 评论