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
ACM-后缀数组
后缀数组
小结
目录原理介绍倍增算法基数排序数组含义代码解释height数组的功能例题讲解洛谷P3809【模板】后缀排序BZOJ:1717:[Usaco2006Dec]MilkPatterns产奶的模式BZOJ:4566:[Haoi2016]找相同字符前言:OrzShichengXiao冬令营的时候就早解决了字符串算法还是不能随意放弃啊要认真学了!!这个算法常用于解决字符串上的\(\mathrm{LCP}\)问题
weixin_30568591
·
2020-07-12 06:01
后缀数组
——罗穗骞倍增算法代码详解
数组sa:构造完成前表示关键字数组,下标表示名次,值表示关键字的首字符位置,值相同的时候名次根据在原串中相对位置的先后决定;构造完成后表示
后缀数组
,下标表示名次,值表示后缀的首字符位置。
_bubble
·
2020-07-11 22:16
ACM
后缀数组
详解
转载自:http://blog.csdn.net/j_sure/article/details/41777097
后缀数组
学习笔记【详解】老天,一个
后缀数组
不知道看了多少天,最后终于还是看懂了啊!
Coder_YX
·
2020-07-11 17:14
算法
ACM_后缀数组
后缀数组详解
【算法笔记】图文结合彻底搞懂
后缀数组
目录1.
后缀数组
sa[]的求法O(nlogn)2.rank数组的求法O(n)3.height数组的求法O(n+)可以先看文章末的参考博客!!
_奶酪
·
2020-07-10 20:45
后缀数组
后缀数组
——罗穗骞倍增算法详细注释
#includeconstintmaxn=100010;intwa[maxn],wb[maxn],wv[maxn],ws[maxn];intcmp(int*r,inta,intb,intl){returnr[a]==r[b]&&r[a+l]==r[b+l];}//就像论文所说,由于末尾填了0,所以如果r[a]==r[b](实际是y[a]==y[b]),说明待合并的两个长为j的字符串,前面那个一定不
wxfwxf328
·
2020-07-10 19:41
acm
后缀数组
编程珠玑(四)求一个字符串中连续出现的次数最多的子串
两个题目的解法有些类似,都用到了
后缀数组
这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生成
后缀数组
例如上面
ysu108
·
2020-07-10 13:52
经典算法
POJ 3261 可重叠的 k 次最长重复子串【
后缀数组
】
这也是一道例题给定一个字符串,求至少出现k次的最长重复子串,这k个子串可以重叠。算法分析:这题的做法和上一题差不多,也是先二分答案,然后将后缀分成若干组。不同的是,这里要判断的是有没有一个组的后缀个数不小于k。如果有,那么存在k个相同的子串满足条件,否则不存在。这个做法的时间复杂度为O(nlogn)。我们可以通过二分子串的长度k来做,这时就将题目变成了是否存在重复次数至少为K次且长度不小k的字符串
weixin_30859423
·
2020-07-10 07:32
2016 Multi-University Training Contest 4 总结
欣君翻译完06题,我觉得
后缀数组
可做,
weixin_30357231
·
2020-07-10 06:40
POJ 3294 不小于k个字符串中的最长子串
将n个字符串连接起来,中间用没有出现过的字符隔开,然后求
后缀数组
,二分答案,进行分组,判断每组的后缀是否出现在不小于k的原串中。
Combatting
·
2020-07-10 00:09
字符串
第15章 结尾语(流下感动的泪水)
并查集图结构--->邻接表、邻接矩阵抽象数据结构:线性表:动态数组、链表栈、队列集合、映射(有序集合、有序映射;无序集合、无序映射)更多数据结构:双端队列、随机队列、最大最小队列双向链表、循环链表跳跃表、
后缀数组
peihenglee
·
2020-07-09 21:22
ACM-
威佐夫博弈之取(2堆)石子游戏——hdu2177
取(2堆)石子游戏TimeLimit:3000/1000MS(Java/Others)MemoryLimit:32768/32768K(Java/Others)TotalSubmission(s):932AcceptedSubmission(s):557ProblemDescription有两堆石子,数量任意,可以不同。游戏开始由两个人轮流取石子。游戏规定,每次有两种不同的取法,一是可以在任意的一
ltree98
·
2020-07-09 20:14
ACM-博弈
漫漫刷题路
ACM
威佐夫博弈
取2堆石子游戏
hdu2177
hdu1527进阶
后缀数组
后缀数组
作者:dylantsou出处:http://blog.csdn.net/dylantsou引言:首先看一个问题,查找一个字符串中的最大回文子串。
DylanTsou
·
2020-07-09 10:41
算法&编程艺术
RMQ问题
RMQ问题作者:dylantsou出处:http://blog.csdn.net/dylantsou引言:在本人的上一篇关于
后缀数组
的博客中,在例2求最长回文子串中提到过:要求其一个数组中任意区间的最大最小值
DylanTsou
·
2020-07-09 10:09
算法&编程艺术
C++/C
SA & SAM
后缀数组
SA\(sa[i]\)与\(rk[i]\)\(sa[i]\)表示排名为\(i\)的后缀是哪一个(在原串中开头位置)。
weixin_30580943
·
2020-07-08 14:12
后缀数组
例题集
按这位大佬的博客刷的https://blog.csdn.net/tianyuhang123/article/details/54977648poj-1743不可重叠最长重复子串给你一串数字,求它们最长的重复(公差相同)子序列,且两个子序列不相交我们可以向二分枚举ans长度,如果能找到两个height>=ans,而且通过sa判断两个的间距>=ans,则说明这个答案合适。code:#include#i
usernamezzz
·
2020-07-08 11:54
算法
ACM-
进制转换
在做题的时候,遇到好多题目都是有关进制间的转换的,所以花点时间整理一下。具体的进制之间的转换方法,一般计算机书籍上都有,无非是基数与权值的讨论,只是将它们写成程序时有点费时。所以下面就直接给出一份比较简洁的模版:constintMAXN=1000;intt[MAXN],A[MAXN];charOldData[MAXN],NewData[MAXN];//转换前、后的数据intolds,news;//
潜水的疯
·
2020-07-08 09:35
ACM-专题-数学
鬼东西
fft点分治李超线段树cdq分治
后缀数组
分块大发多项式除法,求逆,提答构造后缀自动机https://blog.csdn.net/clover_hxy/article/details/68059043硬币
wspl654321
·
2020-07-07 23:18
2018
HDU3518
后缀数组
解题报告:
后缀数组
即可解之。枚举字串长度h对于每一次的h,利用height数组,找出连续的height大于等于h的里面最左端和最右端得为之l和r。
windmissing
·
2020-07-07 17:05
ACM解题报告
ACM-
区间调度问题
//有m项工作每项工作分别在Si时间开始,在Ti时间结束。//对于每项工作你都可以选择参与与否。如果选择参与//那么自始至终都必须全程参与,此外参与工作的时间端不能//重叠(即使是开始的瞬间的重叠也是不允许的)//input//n=5//s={1,2,4,6,8}//t={3,5,7,9,10}//output//3#include"cstdio"#include"iostream"#includ
csx0987
·
2020-07-07 06:10
ACM
ACM-
硬币问题
//有1元,5元,10元。50元,100元,500元的硬币各C1,C5,C10,C100//C500枚。现在要用这些硬币来支付A元,最少需要多少枚硬币?假定//本题至少存在一种支付方案//input//C1=3,C5=2,C10=1,C50=3,C100=0,C500=2,A=620//output//6#include"cstdio"intC[6];constintV[6]{1,5,10,50,
csx0987
·
2020-07-07 06:10
ACM
poj-3261 Milk Patterns
后缀数组
简单题
FarmerJohnhasnoticedthatthequalityofmilkgivenbyhiscowsvariesfromdaytoday.Onfurtherinvestigation,hediscoveredthatalthoughhecan’tpredictthequalityofmilkfromonedaytothenext,therearesomeregularpatternsint
Whata_free
·
2020-07-07 01:59
acm
后缀数组
hdu 3068 and ural 1297
以前写回文串的题目都是采用
后缀数组
写的,今天无意中搜到了Manacher算法,就学了一下。发现Manacher算法真心简洁,复杂度低编程量低。
cscoder
·
2020-07-07 00:47
后缀数组
hduoj
POJ 1743
MusicalTheme用了一个星期的时间学了一下
后缀数组
,然后将罗穗骞论文上的题目都做完。有些题写起来太蛋碎了。。。这道题是论文上的第一道题目,还是蛮简单的。。
cscoder
·
2020-07-07 00:47
后缀数组
POJ
二分查找
湖南大学第十五届程序设计竞赛(最长回文公共子串)H-Longest Common Palindrome Substring(强大的思维+哈希+马拉车)
https://ac.nowcoder.com/acm/contest/908/H题意:就是求两个串的最长公共回文子串;做法:当时那道题撒逼了,以为是一道
后缀数组
题,结果写了一个小时没写出来,但不过又有人用
后缀数组
过了
KXL5180
·
2020-07-06 22:23
ACM题解
ACM-
字符串完全总结(知识点+模板)
STL方法manacher算法字符串HashKMP4.1普通KMP4.2扩展KMPTrie(字典树)5.1字典树5.101字典树自动机6.1AC自动机6.2AC自动机上的动态规划6.3回文自动机(回文树)
后缀数组
Ogmx
·
2020-07-06 04:54
ACM常用模板
算法完全解析
ACM-
组合数学完全总结(知识点+模板)
目录排列1.1不可重排列1.2可重排列1.3圆排列1.4不尽相异元素全排列1.5多重集的排列组合2.1不可重组合数2.2可重组合2.3不相邻组合2.4多重集的组合2.5常用组合数公式2.6组合数取模(模板)常用公式及定理3.1二项式定理3.2鸽巢原理3.3常见恒等式3.4帕斯卡恒等式3.5卢卡斯定理推论3.6容斥原理3.7错排问题常见数列及其性质4.1斐波那契数列4.2卡特兰数列递推方程5.1线性
Ogmx
·
2020-07-06 04:53
ACM常用模板
算法完全解析
算法分类合集(转)
,队列,链表哈希表,哈希数组堆,优先队列双端队列可并堆左偏堆二叉查找树Treap伸展树并查集集合计数问题二分图的识别平衡二叉树二叉排序树线段树一维线段树二维线段树树状数组一维树状数组N维树状数组字典树
后缀数组
weixin_33937913
·
2020-07-05 23:37
20200704联考T2 B
集合相邻两个位置的距离,二分+线段树可以快速算出长度为\(mid\)的子串覆盖的大小在后缀树上从下往上合并,两个位置的距离用set维护,在线段树上修改线段树合并,set合并,用启发式合并最后子串字典序最小可以再写一发
后缀数组
Darknesses
·
2020-07-05 22:00
KMPmatch 字符串模式匹配
O(m+n)计算
后缀数组
时,子串进行的也是模式匹配。
weixin_30564785
·
2020-07-05 21:17
用
后缀数组
,求两个字符的公共子串,或者两个文件的公共子串
复杂度1、求
后缀数组
,用的二分查找法和基类比较,所以时间复杂度是n*lg2n,只保存后缀的位置,空间复杂度是n2、比较查找,没有公共部分的情况,str1排名的最小值>str2排名的最大值或者str1排名的最大值
巅峰蜗牛
·
2020-07-05 19:00
ACM中常用算法----字符串
ACM中常用算法—-字符串ACM中常用的字符串算法不多,主要有以下几种:Hash字典树KMPAC自动机manacher
后缀数组
EX_KMPSAM(后缀自动机)回文串自动机下面来分别介绍一下:0.Hash
码代码的猿猿的AC之路
·
2020-07-05 17:39
我的AC之路
ACM-
蛇形填数
描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:10111219161328151437654输入直接输入方陈的维数,即n的值。(n02.#include03.#defineMAXN10004.inta[MAXN][MAXN];05.intmain()06.{07.intn,x,y,tot=0;08.scanf("%d",&n);09.memset(a,0,size
-FIGHTING-
·
2020-07-05 17:21
ACM
ACM-
字符串-模式串匹配-KMP算法
在模式匹配算法中,KMP是比较常见的单模、高效率算法之一。在讨论KMP之前,先看看朴素的匹配算法为什么低效。普通的暴力匹配算法在每一次匹配失败之后,仅仅下移一位,并且需要重新判断整个模式串的每一个字符,见下图:第一次匹配时,首先会遍历模式串的每一个字符,但是发现模式串的第4个字符f,与文本串的第4个字符a不匹配,所以此时匹配失败;接着进行第二次匹配,文本串下移一位,即从第1个字符开始,然后同样会遍
潜水的疯
·
2020-07-05 16:18
【cf666e Forensic Examination】(后缀自动机+线段树合并)
如果用
后缀数组
做,就转化为区间众数,一脸不可做。(当然莫对+堆还是可以的。。)这个题应该用后缀自动机或者后缀树来做。这样问题就是子树众数,就可以用线段树合并一个log搞定。
broxin
·
2020-07-05 16:00
题解
字符串
线段树
利用
后缀数组
构造后缀树
前段时间学
后缀数组
的时候上网查相关资料,看到说
后缀数组
和后缀树是可以相互转化的,并且uoj上有大量通过后缀自动机建出后缀树然后dfs遍历获得
后缀数组
的模板,但是通过
后缀数组
来建后缀树的资料确实稀缺。
broxin
·
2020-07-05 16:00
学习日志
字符串
超简单的求
后缀数组
算法-JavaScript
//查找functionfind(str,hasSortArr,callback){letl=0,r=hasSortArr.length;letindex=-1;if(hasSortArr.length>0){constri=callback(str,hasSortArr[r-1]);if(ri===1){return[r,-1]}elseif(ri===0){return[r-1,r-1]}el
巅峰蜗牛
·
2020-07-05 14:00
bzoj3998
后缀数组
复习
我只会
后缀数组
sa做法当T=0的询问,我们从sa[i]开始,每次sa[i]这个后缀,我们会加入n-sa[i]+1个子串,其中height[i]个是和sa[i-1]重复的,所以我们记一个变量每次加上n+1
lpf_as_an_oier
·
2020-07-04 22:24
后缀数组
ACM-
二分-POJ-2785-4 Values whose Sum is 0
DescriptionTheSUMproblemcanbeformulatedasfollows:givenfourlistsA,B,C,Dofintegervalues,computehowmanyquadruplet(a,b,c,d)∈AxBxCxDaresuchthata+b+c+d=0.Inthefollowing,weassumethatalllistshavethesamesizen.
UpCoderXH
·
2020-07-04 21:09
ACM/算法
[kuangbin带你飞]专题十八
后缀数组
写了好久才把
后缀数组
的专题写完==。。。
后缀数组
就是对字符串的所有后缀来搞事,通过对这些后缀排序,来得到这些后缀之前存在的关系。
Sega_hsj
·
2020-07-04 18:59
后缀数组
POJ - 2406 Power Strings (
后缀数组
最大重复次数)
PowerStringsGiventwostringsaandbwedefinea*btobetheirconcatenation.Forexample,ifa="abc"andb="def"thena*b="abcdef".Ifwethinkofconcatenationasmultiplication,exponentiationbyanon-negativeintegerisdefinedi
YOONGI
·
2020-07-04 13:31
后缀数组
后缀自动机
「UVA 11475」Extend to Palindrome「
后缀数组
」
这题算是经典题了,可以用KMP/Manacher/SAKMP/Manacher/SAKMP/Manacher/SA做这里丢上一个代码最长的做法:
后缀数组
做法是将原串sss翻转得到s′s's′,
_Gion
·
2020-07-04 04:03
字符串
-
后缀数组
后缀数组
模板解析
intsa[MAXN],wa[MAXN],wb[MAXN],wv[MAXN],wss[MAXN];intcmp(int*r,inta,intb,intlen){returnr[a]==r[b]&&r[a+len]==r[b+len];}voidda(int*r,int*sa,intn,intm){inti,j,p,*x=wa,*y=wb,*t;//首先利用计数排序对长度为1的字符串进行排序,利用字
黎辰
·
2020-07-02 16:47
后缀数组
java实现
对于只会java而对c和c++不熟悉的同学,初学
后缀数组
,基本概念肯定是看了很多遍,但到自己编码肯定又调不通,这里先献上代码,没加注释请自行理解,后面大致分析下踩坑的点。
qq_20734733
·
2020-07-02 16:08
hdu 1403
后缀数组
入门题
LongestCommonSubstringTimeLimit:8000/4000MS(Java/Others)MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):4227AcceptedSubmission(s):1597ProblemDescriptionGiventwostrings,youhavetotellthelengthof
灰黑飞
·
2020-07-02 15:40
后缀数组
后缀数组
题目小结。
学习参考https://wenku.baidu.com/view/228caa45b307e87101f696a8.htmlhttp://blog.csdn.net/yxuanwkeith/article/details/506368984个比较基础的应用Q1:一个串中两个串的最大公共前缀是多少?A1:这不就是Height吗?用rmq预处理,再O(1)查询。Q2:一个串中可重叠的重复最长子串是多长
sega_handsome
·
2020-07-02 13:45
----后缀数组
后缀数组
da算法
height数组,保存了
后缀数组
中相邻两个后缀的最大公共前缀,height[i]的值是sa[i-1]和sa[i]的公共前缀长度。所有子串,∑
lxkyes
·
2020-07-02 10:02
刷题
后缀数组
的Java实现
后缀数组
简介
后缀数组
是一种很有用的数据结构,它经常用在字符串处理的相关问题当中,关于
后缀数组
的一般介绍,我就不作赘述了,因为网上已经有很多的资料了,我一开始也是不太懂
后缀数组
,后来看别人写的博客,慢慢的就理解了
luke_have_a_look
·
2020-07-02 10:32
算法与数据结构
后缀数组
代码详解
////main.cpp//
后缀数组
模板详解////CreatedbyXDon15/9/24.//Copyright©2015年XD.Allrightsreserved.
LuckyqXd
·
2020-07-02 09:55
BZOJ4319: cerc2008 Suffix reconstruction Suffix Array 的理解
如果这一题自己做的话是可以加深对
后缀数组
的理解的。。。。那我就直接厚脸皮的套别人结论了。。。考虑sa的计算方式,然后贪心。如果当前sa的下一位的rank大于下个sa的下一位的r
Hillan_
·
2020-07-02 09:14
后缀数组
贪心
后缀数组
练习题(转)
/****
后缀数组
模版****/#defineF(x)((x)/3+((x)%3==1?
kdqzzxxcc
·
2020-07-02 06:56
数据结构
上一页
6
7
8
9
10
11
12
13
下一页
按字母分类:
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
其他