
后缀数组
文章平均质量分 86
WA是一笔财富
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
51nod 1732 51nod婚姻介绍所 后缀数组 + rmq
传送门:51nod1732题意:中文题。思路:看完就感觉是后缀数组,翻了翻白书,果然是模板题,套个rmq就好了。我从网上扒了个后缀数组的模板然后自己写了个线段树实现rmq,其实直接套kuangbin巨巨的模板就好,连带rmq什么都是全的。代码:#include #include #define lson l, mid, rt << 1#define rson mid +原创 2017-07-31 18:46:20 · 284 阅读 · 0 评论 -
HDU 6194 string string string 后缀数组 + RMQ(线段树)
传送门:HDU6194题意:问给定字符串中有多少种出现k次的子串。思路:首先想到后缀数组经典问题,求出现不少于k次的子串的最大长度,类似的这题肯定就是在height数组上搞事情啦。将height数组每相邻k - 1个一组,这k - 1个height[i]中最小的那个设为tmp,就表示这排名相邻的k个后缀的最长公共前缀(设为s)长度为tmp,可以得出s出现了至少k次,那么长度为tmp -原创 2017-09-10 20:34:18 · 644 阅读 · 0 评论 -
HDU - 5769 Substring 后缀数组(包含某个字符的不同子串的个数)
传送门:HDU 5769题意:求给定字符串中包含某个字母的不同子串的数量。思路:后缀数组的经典应用之一是求字符串的不同子串的数量,这里不过是加了个限制要必须出现某个字符,但是如果理解了经典应用中求不同子串数量的过程,也不难想到解法,我是维护了一个next[]数组,假设要出现的字符是a,那么我就记录对于每一个位置,下一个离得最近的a在哪里,然后像经典应用那样统计,过程中根据next数组判断一原创 2017-09-01 18:00:57 · 468 阅读 · 0 评论 -
HDU 5008 Boring String Problem 二分 + 后缀数组
传送门:HDU 5008题意:给出一个字符串和q次询问,每次问字典序第k小的子串是哪个,若有多个字典序相同的第k小字符串,输出起始点最小的那个。思路:后缀数组经典应用之一有求一个字符串的不同子串个数,由于后缀数组的后缀都是按字典序排好序的,因此每个后缀贡献的子串也是排好序的,这样我们可以搞一个不同子串个数的前缀和数组,然后就可以二分求出一个解来了,但是这个解不一定是起始点最小的解,因此我们原创 2017-10-13 16:45:17 · 354 阅读 · 0 评论