
后缀数组
文章平均质量分 71
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 1031 JSOI2007 字符加密Cipher 后缀数组
题目大意:给定一个字符串,求将这个字符串首尾相接后以每个字符开头的字符串排序后最后一列的字符串传说中的后缀数组0.0 昨晚看了一晚上DC3没看懂,于是写了倍增0.0 罗先生的25行代码实在是抽象QAQ 蒟蒻表示理解不能QAQ 于是自己写了个比较清晰的版本QAQ首先这题是环 于是我们把字符串的前n-1个字符添加到这个字符串的尾端 然后就是后缀数组的事情了求完这个之后按照后缀数组的顺序枚举原创 2014-11-11 14:11:07 · 1742 阅读 · 0 评论 -
BZOJ 3172 Tjoi2013 单词 后缀数组
题目大意:给定一个n个单词的文章,求每个单词在文章中的出现次数文章长度首先将所有单词用空格连接成一个字符串,记录每个单词的起始位置和长度然后求后缀数组,对于每个单词后缀数组中一定有连续一段后缀以这个单词开头,我们通过一开始记录的起始位置找到这个单词的后缀,然后左右端点二分答案,满足左右端点之间的后缀与原单词的LCP都当与等于原单词长度即可时间复杂度O(nlogn)#includ原创 2014-11-12 13:52:36 · 1955 阅读 · 0 评论 -
BZOJ 1692 队列变换 贪心+后缀数组
题目大意:给定一个字符串,每次取头或者尾放在新字符串里,求字典序最小的新字符串首先如果两边的字符不一样 那么肯定要选择小的放在新字符串里但如果两边一样 比如CCBACC 肯定从尾取比较优 原因是CCA比CCB要小于是我们把原串反写接在后面变成CCBACC@CCABCC 然后跑一遍后缀数组 每次就能O(1)比较两个子串的大小了时间复杂度O(nlogn)#include#incl原创 2014-11-13 14:50:56 · 2016 阅读 · 0 评论 -
BZOJ 2119 股市的预测 后缀数组
题目大意:给定一个序列,求差分后有多少个子串满足形式为ABA,其中B部分长度为m,A部分长度大于0首先枚举A的长度j,将序列上每隔j个点插入一个关键点对于第i个位置上的关键点,我们找到第i+j+m个位置利用后缀数组找出两个位置向左拓展多少个位置都是相同的,以及向右拓展都少个位置都是相同的为了保证不重复向左和向右最多拓展j-1个位置设拓展之后长度为len,那么如果len>=j,a原创 2015-01-26 20:56:25 · 1923 阅读 · 0 评论 -
BZOJ 4278 ONTAK2015 Tasowanie 后缀数组
题目大意:给定两个数字串,要求归并成一个且字典序最小某奶牛题? 维护两个指针表示两个字符串各合并到了什么位置 那么这两个后缀中字典序较小者先取 用后缀数组快速比较谁字典序小 时间复杂度O((n+m)log(n+m)) 又是卡时过…… 《标解到底是啥系列》#include <cstdio>#include <cstring>#include <iostream>#include <a原创 2015-09-28 19:04:49 · 2325 阅读 · 2 评论