E-COM-NET
首页
在线工具
Layui镜像站
SUI文档
联系我们
推荐频道
Java
PHP
C++
C
C#
Python
Ruby
go语言
Scala
Servlet
Vue
MySQL
NoSQL
Redis
CSS
Oracle
SQL Server
DB2
HBase
Http
HTML5
Spring
Ajax
Jquery
JavaScript
Json
XML
NodeJs
mybatis
Hibernate
算法
设计模式
shell
数据结构
大数据
JS
消息中间件
正则表达式
Tomcat
SQL
Nginx
Shiro
Maven
Linux
——后缀数组
后缀数组
题表
定义1.1.后缀:包含最后一个字符的字串。2.2.前缀:包含第一个字符的字串。3.3.子串:字符串中连续的某一段。等价定义:某个后缀的前缀4.sa[i]4.sa[i]表示排名为ii的后缀的起始位置。5.rank[i]5.rank[i]表示起始位置为ii的后缀的排名。6.lcp(i,j)6.lcp(i,j)表示起始位置为ii的后缀和起始位置为jj的后缀的最长公共前缀。7.height[i]=lcp(
linjiayang2016
·
2018-08-17 10:59
后缀数组
2018暑期集训 子串查询(主席树+
后缀数组
)
题面:单点时限:2.0sec内存限制:512MB现在Jack有一个只由只由小写字母组成的字符串S,现在他想进行下面的查询:查询S中[l,r]子串第2次出现时第一个字母的位置。输入格式T组输入对于每组输入,第一行输入一个n,m代表S的长度和查询的次数。接下来m行,每行输入一组l,r,代表查询的子串。(1≤n,m≤100000,1≤l≤r≤n)输出格式对于每组查询,输出子串l,r第2次出现的位置,如果
codancer
·
2018-08-09 16:07
动态规划--LIS
【LuoguP4143】采集矿石(
后缀数组
求解子串字典序)
题目链接题意给出一个字符串,每一个位置上的字符有一个权值,统计满足如下条件的子串个数:它包含字符的权值和等于它在所有本质不同的子串中的字典倒序Sol首先暴力的思路就是把每一个串抠出来sort,直接算.然后所有字符相同就是方便了我们处理字典序,在写这一档分时,我们应该是枚据一个左端点,然后二分右端点为什么呢?因为当字符相同时字典序只和长度有关,右端点每往右移动一下,字典序一定是下降的,但是权值和却不
NeosKnight
·
2018-08-06 22:09
======题解======
===字符串===
后缀数组
牛客网多校3 Sort String(
后缀数组
DC3)
题目:就是给你一个串,对于第i个位置,你可以把前i个字符放到队尾形成一个新的字符串,问你最后一共有几个字符串DC3卡过去了hhhh#include#include#include#include#defineF(x)((x)/3+((x)%3==1?0:tb))#defineG(x)((x)=0;i--)b[--wss[wv[i]]]=a[i];}voiddc3(int*r,int*sa,intn
_XFire
·
2018-07-27 22:11
字符串
后缀数组
多校
POJ - 2406 Power Strings (
后缀数组
dc3算法模板)
题目:给出一个字符串问它最多由多少相同的字串组成。kmp简单的三十行代码而且时间还快,一切都是为了dc3模板/*复杂度接近O(n)所有相关数组都要开三倍*/#include#include#include#include#defineF(x)((x)/3+((x)%3==1?0:tb))#defineG(x)((x)=0;i--)b[--wss[wv[i]]]=a[i];}voiddc3(int*
_XFire
·
2018-07-27 10:16
字符串
后缀数组
牛客网暑期ACM多校训练营(第三场)E Sort String【循环节】
https://www.nowcoder.com/acm/contest/141/E用
后缀数组
和哈希操作发现都会超时,后经发现答案跟循环节有关,只需用next数组找出循环节即可。
Irish_Moonshine
·
2018-07-26 19:11
Data
Structure
uva 11107 (
后缀数组
入门)
思路:找出现次数大于n/2次的最大子串,一个子串出现多次,那么他们的排名肯定是相邻的,所以利用height数组,找出相邻排名最长公共前缀长度等于K的区间。看看这个区间中的个数是否大于n/2,满足的话这个k长度就符合。所有我们需要枚举k的大小,可以用二分查找这个临界点。#includeusingnamespacestd;typedeflonglongll;constintINF=1=0;i--)sa
__meteor
·
2018-07-24 19:05
字符串
SA
后缀数组
总结
SA
后缀数组
用于字符串。首先把每一个位置对应的后缀字符串按字典序从小到大排序,然后设sa[i]表示排名为i的后缀串在原串中对应的位置,rank[i]表示原串中位置i对应的后缀的排名为i。
chiyankuan
·
2018-07-14 21:06
算法
最长重复字符串
求解一个字符串中出现的最长的重复的字符串,可以重叠可以使用
后缀数组
的解法,先建立
后缀数组
,然后将数组排序,最后比较相邻的数组之间是否存在相同字符子串#include#include#include#includeusingnamespacestd
Alatebloomer
·
2018-06-22 17:19
数据结构与算法
后缀数组
学习笔记
近期学习了
后缀数组
。以下是我个人对这一算法的理解。
后缀数组
一共有两种算法:倍增法和DC3算法。
DntcryBecthlev
·
2018-06-20 21:55
算法学习笔记
HDU.6294.SA-IS
后缀数组
(思维)
小Q最近阅读了SA-IS算法在线性时间内构造
后缀数组
的相关论文,面对任何字符串题,都可以想出线性时间的算法。小T在经历过二分图匹配事件后,再也不相信小Q所说的话。
MiaoPlus
·
2018-06-07 20:30
【模板】
后缀数组
&后缀自动机
关于后缀自动机SAM,贴一个非常好的讲解:后缀自动机学习小记代码交洛谷模板可A
后缀数组
传送门:洛谷-【模板】后缀排序#includeusingnamespacestd;constintN=1e6+5;chars
ccosi
·
2018-05-12 19:19
后缀自动机
后缀数组
【HAOI2016/BZOJ4566】找相同字符
后缀数组
+单调栈
原题走这里鉴于我实在不是很懂单调栈和单调队列这一系列东西,所以我决定稍微具体讲一下单调栈。恩,本题实质上就是求两个字符串的公共子串数,其中只要出现位置不同,就算是不同的子串。处理多个字符串的经典套路:把两个字符串连在一起,中间用分割符分割。于是问题就转化为了:求分隔符前后都出现过的子串个数。子串就是后缀的前缀,于是问题又转化成了:求整个串中,任意两个后缀的LCP之和,这两个子串要一个在分割符前,一
CRTorlonia
·
2018-05-11 22:03
【USACO06DEC/Luogu2852】牛奶模式
后缀数组
半模板题
原题走这里本题实质上,就是求序列中最长的出现了至少kk次的子串而子串实质上就是后缀的前缀,于是我们可以使用
后缀数组
鉴于
后缀数组
中,拥有相同前缀的的一系列后缀会表现为一段连续的区间而相邻后缀的公共前缀长度又储存在
CRTorlonia
·
2018-05-09 17:06
后缀数组
(非常清楚)
后缀数组
顾名思义,
后缀数组
就是记录所有后缀的数组,同时,它也是有序的。
1035719430
·
2018-05-06 23:49
Java
后缀数组
之求sa数组的实例代码
后缀数组
的一些基本概念请自行百度,简单来说
后缀数组
就是一个字符串所有后缀大小排序后的一个集合,然后我们根据
后缀数组
的一些性质就可以实现各种需求。
小寐一觉
·
2018-04-24 09:54
[bzoj4566][HAOI2016]找相同字符(
后缀数组
)
题目传送门题解这里:把两个串用一个很大的字符连接起来,求一个
后缀数组
。考虑怎样暴力的算答案。
A_Comme_Amour
·
2018-04-17 22:12
【bzoj5073】[Lydsy1710月赛]小A的咒语
后缀数组
+倍增RMQ+贪心+dp
题解
后缀数组
+倍增RMQ+贪心+dp设$f[i][j]$表示从$A$串的前$i$个字符中选出$j$段,能够拼出$B$串的最大长度。那么考虑转移,如果$i+1$不用则$f[i+1][j]\le
GXZlegend
·
2018-04-04 11:00
基数排序的实现
写在前面今天开始学习
后缀数组
,发现了这个神奇的基数排序,之前只是在数据与结构上了解了基数排序的实现原理,但是对于程序怎么实现到现在还是不知道,但是还是想写一篇关于
后缀数组
的博客,所以就从这里开始写起吧,
阿_波_
·
2018-04-02 17:02
后缀数组
愚人节两轮
然而也不知道脑子是不是抽了,内存充裕到要死手欠把
后缀数组
求Sa的桶从MAXN改成了200(当时我好像想的是ASCII码最多到122?exm?
Ju_Ruo
·
2018-04-02 15:56
模拟赛
小错误集锦
后缀数组
模板
模板题:UOJ35终于可以不看板子写出
后缀数组
了开心【捂脸】但还是贴一下板子吧。
Aqua_blue
·
2018-04-01 18:08
板子
后缀数组
字符串算法总结(一)
解决字符串的常用工具:(1)kmp(2)Ac自动机(3)
后缀数组
(4)后缀树(5)后缀自动机(6)manacher(7)回文树。
Demon_Rieman
·
2018-03-23 19:26
总结
省选
字符串
字符串算法总结(一)
解决字符串的常用工具:(1)kmp(2)Ac自动机(3)
后缀数组
(4)后缀树(5)后缀自动机(6)manacher(7)回文树。
Demon_Rieman
·
2018-03-23 19:26
总结
省选
字符串
后缀数组
专题
6道题题目链接:点击打开链接(本篇为
后缀数组
的训练题的个人ac题解,非正规教学题解,仅供参考。)
Mr_Troy
·
2018-03-20 14:25
字符串系列(一)——伟大的字符串Hash
也有许多的算法供我们选择,如:KMP、拓展KMP、最小表示法、Manacher、Trie、
后缀数组
、后缀自动机、AC自动机(树上KMP)等等等,日后我会逐一填坑。
Richard_for_OI
·
2018-02-10 21:31
字符串
后缀数组
详解
什么是
后缀数组
后缀数组
是处理字符串的有力工具—罗穗骞个人理解:
后缀数组
是让人蒙逼的有力工具!
自为风月马前卒
·
2018-02-06 11:00
javascript
后缀数组
后缀数组
是处理字符串的利器,它本身涉及许多辅助概念.基本概念1.1子串表示字符串的某一小段,如awbcdewg拥有awbc,awbcd,awbcde等子串。
司徒正美
·
2018-01-26 00:00
javascript
算法
poj2758/bzoj2258 文本校对
后缀数组
+RMQ
题目大意对于一个字符串进行以下两个操作:I:插入一个字符到现在字符串中一个字符的前面。该操作不超过2000个Q:询问原来的字符串中以第a个字符和第b个字符,从它们现在所处的位置开始的最长公共前缀题目分析维护三个数组:posipos_iposi:原串中第i个字符现在所处的位置,opsiops_iopsi:现在串中第i个字符原来所处的位置(如果是插入进来的字符,则opsi=−1ops_i=-1opsi
litble
·
2018-01-07 13:21
字符串
RMQ
2018年1月4日训练总结
简单的复习了下AC自动机的知识,关于
后缀数组
目前还处于懵逼状态。估计我这智商得花不少时间。。。主要是打了多场比赛。有cf的和牛客上的比赛。
LSD20164388
·
2018-01-05 22:46
训练日记
[
后缀数组
] BZOJ4650: [Noi2016] 优秀的拆分
令fi表示以i结尾的AA类型字符串的个数,gi则表示以i为开头的那么答案就是∑fi×gi+1枚举A的长度L,每隔L个位置放一个关键点,那么A肯定经过一个关键点,用SA找一下就好了#include#include#include#includeusingnamespacestd;typedeflonglongll;constintN=100010;intt,n;chara[N];intt1[N],t
LowestJN
·
2017-12-23 17:21
后缀数组
青岛站总结
青岛站总结,总的来说这次比赛打得不错的,不过对于出题人的锅,我还是忍不住的喷一下,感觉很是生气,我的也是n*n*lg(n)的
后缀数组
的暴力,我的就没过,别人的过了,我虽然最后也是三题,但是我差点拿了铁啊
但求-_-心安
·
2017-11-06 17:18
ACM-个人小结
心安观世界
ac自动机模版
后缀数组
#include#include#includeusingnamespacestd;constintmaxn=200000+100;intwa[maxn],wb[maxn],wv[maxn],Ws
fantaticmen
·
2017-10-24 23:26
什么都不是
NOIP复习计划
字符串内容:KMP、Trie树、AC自动机、
后缀数组
。
kamisamaxmd
·
2017-10-02 19:35
总结
HDU 5769
后缀数组
+二分
题意:题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5769求一个字符串中包含字符x的不同子串有多少个思路:处理出height数组,对于每个后缀i,二分得出i之后的第一个字符x的位置,max(x,sa[i]+height[i])之后的位置结尾得到的字符串都是唯一的,相见代码。代码:#includeusingnamespacestd;typedeflo
Bahuia
·
2017-09-22 15:30
二分/三分
后缀数组
HDU 5442 Favorite Donut (最大表示法+KMP ||
后缀数组
)
后缀数组
也可以求字典
cillyb
·
2017-09-21 23:23
KMP
后缀数组
后缀数组
MaxSubstringTimelimit:1000msMemorylimit:256MBYouaregivenastringSS.FindastringTTthathasthemostnumberofoccurrencesasasubstringinSS.Ifthesolutionisnotunique,youshouldfindtheonewithmaximumlength.Ifthesolu
dongdongdong122
·
2017-09-21 14:02
后缀数组
POJ 3261
后缀数组
+二分
思路:经典题,
后缀数组
+二分注意此题需要离散化。
Bahuia
·
2017-09-20 19:23
二分/三分
后缀数组
9.13第一轮扫荡战果
1.处理内容字符串部manacher1题
后缀数组
1题后缀自动机1题最小表示法1题数学几何部miller-rabin1题动态规划部斜率优化2题2.字符串部(1)双倍回文(SHOI2011)暴力瞎搞搞#include
Friedrich_Taylor
·
2017-09-13 20:11
OI
字符串算法纲
动态规划纲
hdu 6194 -
后缀数组
+线段树
题目链接:点击打开链接题解思路:用
后缀数组
处理得到的hight数组后,对它再进行线段建树,维护的是区间内最小的一个值,那么我们每次取枚举一个长度为n的区间时,取它的最小值这表示从1-ans_min的字符串长度都是满足的
a1214034447
·
2017-09-10 23:45
线段树
后缀数组
HDU 5763 Another Meaning (DP+KMP||
后缀数组
)
题意:给你两个字符串,A,B,A中每一个B字符串都有两种意思,问A总共可以有多少种意思。|A|,|B|usingnamespacestd;constintmaxn=1e5+5;constintmod=1e9+7;charstr1[maxn],str2[maxn];intNext[maxn],isE[maxn];intdp[maxn];voidmakeNext(char*s){intlen=strl
cillyb
·
2017-09-04 23:53
KMP
DP
后缀数组
bzoj2251 [2010Beijing WC]外星联络(
后缀数组
+暴力)
用
后缀数组
处理出h数组,每个子串第一次出现时,往后扫,看重复了几次。n=3000,暴力即可。
Icefox_zhx
·
2017-08-03 12:59
SA
bzoj
F - Anti-Rhyme Pairs(rmq算法模板)(
后缀数组
算法模板)
点击打开链接题目大意:通常押韵的两个词以相同的字符结尾。我们运用这个特性来规定反押韵的概念。反押韵是一对拥有近似开头的单词。一对单词的反押韵的复杂度被定义为两者都以之开头且最长的字符串S的长度。因此,"arboreal"和"arturus"是复杂度为2的一对反押韵,且"chalkboard"和"overboard"是一对复杂度为0的反押韵。你将得到一列单词。你的任务是,得到一列(i,j)形式的问题
Draven__
·
2017-07-31 13:54
姗姗杯
算法
后缀数组
练习题bzoj 1031
后缀数组
模板题目
id=1031这是一道显然的
后缀数组
模板题目。
kamisamaxmd
·
2017-07-27 20:00
字符串
uoj P35 后缀排序
传送门妥妥的
后缀数组
裸题(主要是楼主菜只会打这种题目),还有拓展lucas还没调对qwq菜飞了。。。求sa和lcp,就是
后缀数组
求sa和height。
Leo_Riddle
·
2017-07-11 14:05
后缀数组
uoj
JZOJ 100037【NOIP2017提高A组模拟7.11】
后缀数组
题目描述:给出S的SA,求S最少的不同字符的个数。1=rank[SA[i+1]+1]则必有S[SA[i]]#definefo(i,x,y)for(inti=x;i=rank[SA[i+1]+1])ans++;printf("%d\n",ans);}}
Cold_Chair
·
2017-07-10 19:29
Suffix
array
JZOJ 100037【NOIP2017提高A组模拟7.11】
后缀数组
题目描述:给出S的SA,求S最少的不同字符的个数。1=rank[SA[i+1]+1]则必有S[SA[i]]#definefo(i,x,y)for(inti=x;i=rank[SA[i+1]+1])ans++;printf("%d\n",ans);}}
Cold_Chair
·
2017-07-10 19:29
Suffix
array
BZOJ4516 [Sdoi2016]生成魔咒 后缀自动机/
后缀数组
题意:一个串初始为空,n次像串尾添加元素,每次添加后回答本质不同的子串个数n usingnamespacestd; constintmaxn=100009,Log=18; intc[maxn],t[maxn],t2[maxn],sa[maxn],rank[maxn],height[maxn]; ints[maxn],b[maxn],ft[maxn],nxt[maxn],pre[maxn]; in
Flere825
·
2017-06-14 21:00
后缀数据结构
*
后缀数组
今天是2017/5/31,DCDCBigBig的第十六篇博文
后缀数组
(SA+Rank+Height)#include#include#include#includeusingnamespacestd;intrank
DCDCBigBig
·
2017-05-31 21:51
算法-字符串
*
后缀数组
今天是2017/5/31,DCDCBigBig的第十六篇博文
后缀数组
(SA+Rank+Height)#include#include#include#includeusingnamespacestd;intrank
DCDCBigBig
·
2017-05-31 21:51
算法-字符串
后缀数组
复习小记
定义:suf[i]表示以i为开头的后缀rank[i]表示suf[i]的排名,sa[i]表示排名为i的后缀height[i]表示sa[i]和sa[i-1]的lcph[i]表示suf[i]和suf[sa[rank[i]-1]]的lcpsa[rank[i]]=i,所以只要能求出rank,就可以求sa倍增求rank相当于把n个后缀排序,直接暴力排,显然是O(n^2*log(n))我们可以考虑假如已经处理了
Drin_E
·
2017-04-24 22:01
后缀数组
上一页
8
9
10
11
12
13
14
15
下一页
按字母分类:
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
其他