后缀数组
Facico
生命是闪耀的此刻,不是过程,就像芳香不需要道路一样。
展开
-
后缀数组复习小记
后缀数组复习小记【Suffix Array】 后缀数组,顾名思义就是处理后缀的数组。例如daabbc的后缀:daabbc,aabbc,abbc,bbc,bc,c六个后缀。 ——>定义sa[i]为排名第i个的后缀的第一个字符在原字符串中的序号。如上面的sa[1]=2,因为后缀从序号2开始的aabbc排第一个。 ——>定义rank[i]为序号从i开始的后缀排第几个。如上面的ran原创 2016-02-03 18:42:17 · 858 阅读 · 0 评论 -
【TJOI2016&&HEOI2016】字符串
DescriptionSolution比赛的时候没有时间打,其实这题并不难TAT后缀数组求一段LCP的最大值,明显可以用后缀数组解决。二分先找出c开头的后缀的rank(及rank[c])。 看到最大最小的这种东西,想一想二分。二分出前缀的最大长度mid。 可以发现在rank上,i与c的LCP就是min(height[i+1…c]),如果这个值RMQ所以把rank向前后扩展,找到符合这个要求的在r原创 2016-07-13 22:21:28 · 1167 阅读 · 0 评论 -
【APIO2016】字符串匹配
DescriptionSolution刚看到这题,最有想法,这不是一道水题吗! 然后脑抽打了个后缀数组加KMP(其实只用KMP就好了),然后打的又臭又长,最后还爆零了。我的KMP尽然从1开始搜!!!!!TAT 主要思路:分两种情况 1、S比T短,设S在T中出现次数为o,然后答案先加上n*o,然后再找中间出现的次数,设S的长度为m,把T的后m-1个和T的前m-1个组成新的字符串A,然后求得S在A原创 2016-07-14 08:33:41 · 777 阅读 · 0 评论 -
【GDOI2012】字符串
Descriptionmmm正在学习字典序。现在老师给她布置了一个作业:给出一个字符串,问该字符串的所有不同的子串中,按字典序排第K的字串。由于众所周知的原因,mmm需要你为她解决这个问题。Solution这里与TJOI2015弦论几乎是一样的,比那题还要水很多。 根本就不用担心爆栈什么的。 后缀自动机直接秒过。Code#include<iostream> #include<cstdio> #原创 2016-08-16 21:49:29 · 972 阅读 · 0 评论 -
【GDOI2017模拟二试4.12】旅游路线(后缀自动机,trie)
DescriptionA君准备在Z国进行一次旅行,Z国中有n个城市,城市从1到n进行编号,其中1号城市为Z国首都。Z国的旅行交通网由n-1条单向道路构成,并且从任何一个城市出发都可以通过旅行网到达首都。 一条旅行交通网中的旅行线路,可以用线路上所经过的城市来描述,如{v1,v2,v3,……,vm},它表示一条经过了m个城市的旅行路线,且城市vi到城市vi+1有一条单向道路相连。 两个城市是相似的原创 2017-04-16 11:37:54 · 523 阅读 · 0 评论