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
----后缀数组
文本局部敏感哈希-SimHash算法原理
最近在思考大量文本判重的问题,由于文本数据量大,加之文本判重算法,如BF、KMP、最长公共子串、
后缀数组
、字典树、DFA等计算时空复杂度并不适合数据量较大的工业应用场景。
晓风残月xj
·
2020-09-12 08:49
网站后台
模式识别
Poj 3167 Cow Patterns Hdu 4749 Parade Show (KMP大小关系相同匹配+树状数组)
KMP和exKMP先练到这里,接下来计划研究下被虐了一遍又一遍的
后缀数组
。。。昨天再战cet6,这回写作和翻译题简直感人。。。希望这回能过吧。坑爹的考试周又要开始了,希望做题的时间能够得到保证。
时雨晴天
·
2020-09-12 08:08
ACM/ICPC
Regional
KMP
exKMP
字符串
后缀数组
(Suffix Array) 学习笔记
\(\\\)定义介绍一些写法和数组的含义,首先要知道字典序。\(len\):字符串长度\(s\):字符串数组,我们的字符串存储在\(s[0]...s[len-1]\)中。\(suffix(i),i\in[0,len-1]\):表示子串\(s[i]...s[len-1]\),即从\(i\)开始的后缀。加入我们提取出了\(suffix(1)...suffix(len-1)\),将他们按照字典序从小到达
weixin_34310785
·
2020-09-12 07:30
后缀数组
suffix array
倍增算法,时间复杂度O(nlogn)sa从小到大保存相对大小的下标理解LSD,x数组,sa数组chars[maxn];intsa[maxn],t[maxn],t2[maxn],c[maxn],n;voidbuild_sa(intm){//LSD基数排序int*x=t,*y=t2;//x数组保存rank//字串长度为1,即对每个元素的大小排序for(inti=0;i=0;--i)sa[--c[x[i
fa茶
·
2020-09-12 07:19
#
各种模板
后缀数组
(模版测试中)
倍增法#include#includeconstintN=1e5+5;chars[N];intsa[N],ra[N],wa[N],wb[N],wv[N],ws[N],height[N],next[N],n;boolcmp(constint*f,constint&a,constint&b,constint&j){returnf[a]==f[b]&&f[a+j]==f[b+j];}voidgetSA(
Nightmare004
·
2020-09-12 06:12
数据结构与算法
suffix_array(
后缀数组
) 学习笔记
没学会正常做法写了一个链表实现的双关键字统计排序,常数差不多大#include#defineN200100usingnamespacestd;intn,SA[N],rnk[N],height[N];charS[N];inlinevoidget_SA(){staticintx[N],y[N],t[N],head[N],nxt[N],p=26;for(intk=1;kn)?0:rnk[i+k];for
hz_826
·
2020-09-12 04:33
解题报告
剑指Offer——JZ51.构造乘积数组【前
后缀数组
】
题目传送门题解区间线性问题,直接考虑前后缀即可分别计算前缀后缀乘积和,即可线性复杂度AC-CodeclassSolution{public:vectormultiply(constvector&A){vectorB(A.size(),1);for(inti=1;i=0;--j){tmp*=A[j+1];B[j]*=tmp;}returnB;}};
nirvana · rebirth
·
2020-09-10 22:07
剑指Offer
【Luogu】P3809后缀排序(
后缀数组
模板)
题目链接今天终于学会了
后缀数组
模板qwq不过只会模板emmmm首先我们有一本蓝书emmmmmm然后看到蓝书221页代码之后我就看不懂了于是请出rqyrqy:一开始那是个对单个字符排序的操作啊c[i]表示值为
weixin_30820151
·
2020-09-10 19:02
数据结构与算法
poj 1743求最长不重叠公共子串
后缀数组
欧液!
pucca
·
2020-09-10 15:49
algorithm
后缀数组
数据结构笔记_总结
(前缀树,字典树)并查集图结构:邻接表邻接矩阵抽象数据结构(高层数据结构):线性表栈,队列集合,映射有序集合,有序映射无需集合,无序映射更多数据结构:双端队列随机队列最大最小队列双向链表循环链表跳跃表
后缀数组
Crownt
·
2020-09-10 14:00
数据结构
后缀数组
学习笔记
学习算法...准备工作中...一直耳闻
后缀数组
的神奇,据说是解答字符串类型题目的神器...故作此文,权作学习笔记...何谓
后缀数组
?
Speknighter
·
2020-09-10 11:19
Algorithm
BZOJ3879:SvT(后缀自动机+虚树)
后缀数组
的写法太简单显然了,把后缀按顺序拿出来,只用一个单调栈就可以了,但我并不会…所以就是SAM了。经过一轮求后缀LCP模型在SAM上乱套,发现就是反串建SAM,得到后缀树。
KKiseki
·
2020-08-26 13:42
虚树
后缀自动机
【BZOJ3879】SvT 后缀树+虚树
话说其实
后缀数组
分治能写,当时想shei了。Vn:啊,水题。一看到“后缀”和这数据范围,肯定
后缀数组
、后缀自动机、后缀树走起!然后我们可以轻松构造出来一个后缀树,然后每次询问树形
空灰冰魂
·
2020-08-26 12:54
后缀自动机
后缀树
虚树
后缀数组
分治
[BZOJ3879]SvT(
后缀数组
+单调栈)
题目描述传送门题解求出sa和height把每一组询问的子串按照rank排序,顺序枚举每一个后缀,每一个后缀的贡献就应该为它与它前面的所有后缀的lcp之和维护一个单调递增的栈、栈中每一个元素的数量以及栈中元素和就可以了相同的只算一个unique一下,不好好读题的锅?代码#include#include#include#include#includeusingnamespacestd;#defineL
Clove_unique
·
2020-08-26 11:37
题解
后缀数组
单调栈
bzoj 3879: SvT (
后缀数组
+单调栈)
3879:SvTTimeLimit:30SecMemoryLimit:512MBSubmit:546Solved:219[Submit][Status][Discuss]Description(我并不想告诉你题目名字是什么鬼)有一个长度为n的仅包含小写字母的字符串S,下标范围为[1,n].现在有若干组询问,对于每一个询问,我们给出若干个后缀(以其在S中出现的起始位置来表示),求这些后缀两两之间的L
clover_hxy
·
2020-08-26 11:47
单调栈
后缀数组
高级算法和数据结构(2)
高级数据结构:哈希表、树与二叉树、优先队列与堆、并查集、线段树、树状数组、伸展树、Treap、AVL树、红—黑树、SBT、块状链表与块状树、后缀树与
后缀数组
、树链剖分与动态树等。
desaco
·
2020-08-26 11:40
(高级)算法和数据结构
后缀数组
,高度数组
后缀数组
:SA[i]表示字典序第i的后缀的开头字母的位置,比如abca,后缀有五个,abca,bca,ca,a,空后缀求
后缀数组
的方法是……类似分治法,类似二分法?
qq_21704477
·
2020-08-25 03:46
acm
后缀数组
专题整理
先介绍一些基本概念:子串在字符串s中,取任意i1,如果h[i-1]≤1,原式显然成立)并且suffix(k+1)和suffix(i)的最长公共前缀是h[i-1]-1,所以suffix(i)和在它前一名的后缀的最长公共前缀至少是h[i-1]-1。具体实现:实现的时候其实没有必要保存h数组,只须按照h[1],h[2],……,h[n]的顺序计算即可。intrank[maxn],height[maxn];
pcrango
·
2020-08-25 03:46
后缀数组
POJ 2774 Long Long Message (
后缀数组
)
题目类型
后缀数组
题目意思问两个最长1e5的字符串的最长公共子串解题方法在第一个字符串后添加一个区别于输入的所有字符的字符(例如'#')后再把第二个字符串添加在后面构成一个新的字符求这个新字符串的height
yunyouxi0
·
2020-08-25 02:09
数据结构
后缀数组
省选算法汇集(持续更新)最后更新2016.2.29
kmp字典树AC自动机
后缀数组
后缀自动机回文串manacher图论相关并查集最短路(Spfa,Dijkstra,Floyd)最小生成树(Kruskal,prim,LCT)网络流(据说SDOI每年都会考,
ws_yzy
·
2020-08-25 00:32
颓废史
BZOJ刷题记录
字符串hash + 二分答案 - 求最长公共子串 --- poj 2774
analyse:前面在学习
后缀数组
的时候已经做过一遍了,但是现在主攻字符串hash,再用字符串hash写一遍。
weixin_33875839
·
2020-08-24 23:06
后缀数组
(不可重叠重复子串)poj1743
思路:二分答案,然后遍历height数组,看能不能找到符合条件的我写的一直wa,求大神指导#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;constintmaxn=20010;constintINF=10000000;intn,x[ma
u010660276
·
2020-08-24 23:03
后缀数组
字符串
字符串学习笔记
-03)Hash方法扩展代码实现KMP前缀函数算法流程代码实现应用查询文本中的某个单词统计每个前缀的出现次数(未学习)扩展KMP(未学习)Trie(未学习)AC自动机失配指针算法流程(待完善)代码实现
后缀数组
Johnson_sky
·
2020-08-24 22:32
ACM
POJ 2406 Power Strings 【
后缀数组
||KMP】
PowerStringsTimeLimit:3000MSMemoryLimit:65536KTotalSubmissions:51298Accepted:21420DescriptionGiventwostringsaandbwedefinea*btobetheirconcatenation.Forexample,ifa="abc"andb="def"thena*b="abcdef".Ifweth
Dust_Heart
·
2020-08-24 22:45
KMP匹配
Manacher算法
后缀数组
POJ
字符串hash + 二分答案 - 求最长公共子串 --- poj 2774
analyse:前面在学习
后缀数组
的时候已经做过一遍了,但是现在主攻字符串hash,再用字符串hash写一遍。
北岛知寒
·
2020-08-24 21:05
POJ3882 Stammering Aliens
后缀数组
+二分
统计出现m次的重复字串最长的长度和最右边的一个字符串的开始位置。可重叠很明显的后缀的公共前缀长度问题,high数组的应用。StammeringAliensTimeLimit:2000MSMemoryLimit:65536KTotalSubmissions:422Accepted:153DescriptionDr.EllieArrowayhasestablishedcontactwithanextr
Albafica
·
2020-08-24 14:30
后缀数组
OI算法复习汇总
各大排序图论:spfafloyddijkstra*拉普拉斯矩阵hash表拓扑排序哈夫曼算法匈牙利算法分块法二分法费马小定理:a^(p-1)≡1(modp)网络流二分图
后缀数组
倍增算法RMQ并查集∑求和符号
anjiang8171
·
2020-08-24 13:58
SPOJ 题目705 New Distinct Substrings(
后缀数组
,求不同的子串个数)
SUBST1-NewDistinctSubstringsnotagsGivenastring,weneedtofindthetotalnumberofitsdistinctsubstrings.InputT-numberoftestcases.T#include#include#include#definemin(a,b)(a>b?b:a)#definemax(a,b)(a>b?a:b)using
Jogging_Clown
·
2020-08-24 11:12
后缀数组
2018 EC-Final 部分题解 (A,J)
目录The2018ICPCAsia-EastContinentFinalA.Exotic…AncientCity(思路并查集)J.Philosophical…Balance(
后缀数组
/后缀自动机零和博弈
weixin_30642029
·
2020-08-24 10:05
SPOJ 694 Distinct Substrings
后缀数组
求不同的子串数。。
码代码的猿猿的AC之路
·
2020-08-24 10:05
字符串
SPOJ - DISUBSTR Distinct Substrings(
后缀数组
求不相同的子串个数)
DescriptionGivenastring,weneedtofindthetotalnumberofitsdistinctsubstrings.InputT-numberoftestcases.T#include#include#include#includeusingnamespacestd;constintmaxn=1010;intsa[maxn];//SA数组,表示将S的n个后缀从小到大
Joyyiwei
·
2020-08-24 10:42
后缀数组
牛客多校 - B-Suffix Array(
后缀数组
)
题目链接:点击查看题目大意:给出一个只含有'a'和'b'的字符串,再给出B数组的构造方法如下:对于每个位置i来说如果存在一个位置j,使得j#include#include#include#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;typedeflo
Frozen_Guardian
·
2020-08-24 10:10
字符串处理
2019 ccpc 网络赛——hdu-6704-K-th occurrence--
后缀数组
+主席树
于是我们又想到
后缀数组
也可以处理类似问题,然后对于第k大,我们可以用主席树去维护
three trees
·
2020-08-24 09:44
后缀数组
数据结构
主席树
hashit
如果字符串是静态的,统计S中不同子串个数的经典做法是用
后缀数组
,构造出he
WorldWide_D
·
2020-08-24 07:50
后缀平衡树
string
【VOJ1895】 ニニスの守護
后缀数组
DP
有一个十进制数字符串S,它是由一个严格上升的数列A拼接而成,要求你构造A使得:1.最后一个数最小2.在1的基础上字典序最大#include#include#include#include#include#include#defineRep(i,x,y)for(inti=x;i=y;i--)#defineRepE(i,x)for(inti=pos[x];i;i=g[i].nex)usingnames
hzt_Owen
·
2020-08-24 07:27
字符串
动态规划
SPOJ DISUBSTR - Distinct Substrings
后缀数组
,转化
DISUBSTR-DistinctSubstringsnotagsGivenastring,weneedtofindthetotalnumberofitsdistinctsubstrings.InputT-numberoftestcases.Tsa[len]的方向计算,每一次可以有len-sa[i]+1个新子串(这个后缀的前缀数),可是考虑重复的问题,需要减去height[i]也就是和上一个后缀的
Good_night_Sion_
·
2020-08-24 07:04
后缀数组
计数排序和基数排序
计数排序是基数排序的基础,最为关键的是:基数排序算法是
后缀数组
的关键(当然
后缀数组
也可以用快排),
后缀数组
是用于处理字符串的一种非常优秀的数据结构,可以高效的处理很多字符串问题,比如重复子串,回文子串等等
uestclr
·
2020-08-24 03:33
算法设计和数据结构
(Relax
后缀数组
1.2)POJ 3261 Milk Patterns(求一个长度为n的整数序列中,至少出现k次的子序列的最长的长度)
【题意】给定一个长度为n的整数序列,求其中至少出现k次的子序列长度最长为多长【输入】第一行n和k接下来n个数字描述序列【输出】一个数字,表示至少出现过k次的子序列最长长度也是09年论文《
后缀数组
——处理字符串的有力工具
黄俊东
·
2020-08-23 16:43
ACM——夺金之路
LCP
基于
后缀数组
的LCP思想因为和后缀有关,所以在
后缀数组
的基础上实现。
ZigZagK
·
2020-08-23 04:30
LCP
哈希
算法&数据结构总结By_ZZK
后缀数组
_DC3(模板大全)
/*suffix数组:第i位到最后的字符串sa数组:将排序后的后缀的开头位置顺次放入SA中,称为
后缀数组
rank数组:令rank[i]保存suffix[i]在排序中的名次,名次数组*/#include"stdio.h
穿袜子的流氓兔
·
2020-08-23 03:10
ACM
数据结构
重复子串问题(二):求一个字符串中连续出现次数最多的子字符串
两个题目的解法有些类似,都用到了
后缀数组
这个数据结构。求一个字符串中连续出现的次数最多的子串,首先生成
后缀数组
例如上面的字符串为:abababcbababcababcbabcabcbcc可以看出第一
碧海凌云
·
2020-08-23 03:17
数据结构与算法
【BZOJ2865】字符串识别
【题目链接】BZOJ2865(权限题)【前置技能】线段树
后缀数组
【题解】先考虑另一个问题:给出一个字符串SS,要求求出某一位后缀的最短前缀,使得这个子串在SS中仅出现一次。
步六孤明琪
·
2020-08-23 02:45
【类型】做题记录
【内容】线段树
【内容】后缀数组
【*】
后缀数组
(dc3算法构造)
constintMax=200001;intnum[Max];intr[Max*3],sa[Max*3];intrank[Max],height[Max];intwa[Max],wb[Max],wv[Max],wd[Max];#defineF(x)((x)/3+((x)%3==1?0:tb))#defineG(x)((x)=0;i--)b[--wd[wv[i]]]=a[i];return;}voi
famousDT
·
2020-08-23 01:47
数据结构
bzoj 1396 识别子串 & bzoj2865 字符串识别
后缀数组
+线段树
题面题目传送门双倍经验传送门解法解法全靠yy……显然我们可以先构造出
后缀数组
。
mysterynoip
·
2020-08-23 01:14
【OJ】BZOJ
【数据结构】线段树
【数据结构】后缀数组
【数据结构】堆
【数据结构】STL
后缀数组
倍增模版+D3C模版
intwa[maxn],wb[maxn],wv[maxn],ws[maxn];intcmp(int*r,inta,intb,intl){returnr[a]==r[b]&&r[a+l]==r[b+l];}voidda(int*r,int*sa,intn,intm){inti,j,p,*x=wa,*y=wb,*t;for(i=0;i=0;i--)sa[--ws[x[i]]]=i;for(j=1,p=
azheng51714
·
2020-08-23 01:06
后缀数组
bzoj 2865 字符串识别 ——
后缀数组
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2865唯一出现的子串就是每个后缀除去和别的后缀最长的LCP之外的前缀;所以用这个更新一段区间的答案,可以用线段树维护;在sa[i]~sa[i]+LCP+1位置的答案由LCP+1更新,sa[i]+LCP+1之后的位置就更新一个位置ps表示从ps到本位置的子串也可以;最后两个取min即可;注意如果
aodan5477
·
2020-08-23 01:30
POJ2406 Power Strings
后缀数组
(DC3算法)或KMP或暴搜(瞎写)
方法一:暴搜。。(188ms)自己瞎写的。。竟然过了??!!!附上AC代码:#include#include#include#include#include#include#include#include#include#includeusingnamespacestd;#definelllonglongtypedefpairpp;#definemkpmake_pair#definepbpush_
Cc_Sonia
·
2020-08-23 00:22
#
字符串
DC3算法初步学习笔记
——《高级数据结构》“linearworksuffixarrayconstruction”的文章中提出了
后缀数组
的线性时间构造算法。
oshawott_cute
·
2020-08-23 00:00
acm
LCP的引入笔记
——《高级数据结构》前面介绍了几种算法构造
后缀数组
,虽然得到的
后缀数组
已经能处理一些简单的问题,但是为了让其能够具有与后缀树相媲美的字符串处理能力,需要引入辅助工具——LCP(LongestCommonPrefix
oshawott_cute
·
2020-08-23 00:00
acm
DC3算法模板学习笔记
今天看了一下洛谷sx视频,
后缀数组
双关键字排序瞬间秒懂,昨天刚了一下午没有看懂的
后缀数组
基数排序代码有了一点点突破。
oshawott_cute
·
2020-08-23 00:00
acm
上一页
1
2
3
4
5
6
7
8
下一页
按字母分类:
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
其他