
后缀数组
Neo__Z
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
后缀数组详解
为什么学后缀数组后缀数组是一个比较强大的处理字符串的算法,是有关字符串的基础算法,所以必须掌握。 学会后缀自动机(SAM)就不用学后缀数组(SA)了?不,虽然SAM看起来更为强大和全面,但是有些SAM解决不了的问题能被SA解决,只掌握SAM是远远不够的。 ……有什么SAM做不了的例子? 比如果求一个串后缀的lcp方面的应用,这是SA可以很方便的用rmq来维护,但是SAM还要求lca,比较麻烦,转载 2017-07-21 20:57:40 · 737 阅读 · 0 评论 -
bzoj 1031 [JSOI2007]字符加密Cipher
题目描述喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法。例如下图,可以读作: JSOI07 SOI07J OI07JS I07JSO 07JSOI 7JSOI0把它们按照字符串的大小排序:07JSOI 7JSOI0 I07JSO JSOI07 OI07JS SOI07J读出最后一原创 2017-07-24 16:04:06 · 366 阅读 · 0 评论 -
NOIP模拟 字符串【后缀数组+稀疏表】
题目描述给定两个字符串 s 和 t ,两个字符串都由 26 个小写字母中的部分字母构成。现在需要统计 t 在 s 中出现了的次数。 对于 s1 中的每个位置 i ,设 strlen(s2)=m ,若: ∑mj=1[s[i+j−1]!=t[j]]≤k\sum^m_{j=1}[s[i+j-1]!=t[j]]\le k (最外层中括号为布尔表达式) 则认为 t 在 s 的 i 处出现了一次,现在想原创 2017-11-10 08:06:14 · 315 阅读 · 0 评论 -
poj1743 Musical Theme【后缀数组+二分答案】
题目大意:给n个数组成的串,求是否有多个“相似”且间隔至少为1的子串的长度大于等于5,两个子串相似当且仅当长度相等且每一位的数字差都相等。解题思路:首先把问题转化成重复子串的问题:把原串每一位都与前一位相减。这样得出的新串如果有两个长度为n的子串相同,那么它们对应在原串的长度n+1的子串也就相似。再求出后缀数组。如果只是求可重叠重复最长子串,答案就是height的最大值。但原创 2018-01-28 10:26:18 · 276 阅读 · 0 评论 -
poj3261 Milk Patterns【二分答案+后缀数组】
题目大意:给定一个长度为n的数字串,问可重叠至少出现k次的最长重复子串的长度。解题思路:做法有很多,比如二分+哈希+map(或哈希表)就比较清新,这里说说后缀数组的做法。 建立后缀数组,二分ans后只需看height是否有连续k-1个大于ans即可。#include#include#includeusing namespace std;int getint(){原创 2018-01-28 10:54:33 · 251 阅读 · 0 评论 -
bzoj3879: SvT【后缀数组+稀疏表+单调栈】
Description(我并不想告诉你题目名字是什么鬼)有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n].现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始位置来表示),求这些后缀两两之间的LCP(LongestCommonPrefix)的长度之和.一对后缀之间的LCP长度仅统计一遍.Input第一行两个正整数n,m,分别表示S的长度以...原创 2018-04-11 21:00:20 · 353 阅读 · 0 评论 -
BJ模拟 最长公共前缀【树上后缀数组】
题目大意:bzoj3879的树上版本,trie树上每个节点到根的路径都看做是一个后缀。解题思路:建一波树上后缀数组,再用bzoj3879的方法(这里)即可。 第一次写树上后缀数组,全靠yy,好多地方被普通后缀数组带偏,细节见代码。#include<bits/stdc++.h>#define ll unsigned long longusing namespac...原创 2018-04-12 21:14:59 · 1213 阅读 · 0 评论 -
BJ模拟 Different Trips【树上后缀数组】
题目描述:CJB来到HZ王国旅游。HZ王国给CJB留下了深刻的印象,特别是HZ王国的道路系统。HZ王国有N个城市,编号从1到N。其中,城市1为HZ王国的首都。这N个城市由N-1条无向道路来连接。虽然只有这么少路,但任意两个城市都可以互相到达。每个城市都有一座标志性的建筑(比如广州塔、东方明珠),站在上面可以看到这座城市有多少条道路与它连接。如果与城市A连接的道路数量等于与城市B连接的道路数...原创 2018-05-02 10:47:09 · 731 阅读 · 1 评论