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
----后缀自动机
回文树
如同AC自动机,
后缀自动机
等处理文本的数据结构一样,回文树的建立也拥有着线性的时间复杂度,并且其建立过程是在线的。下面我们来描述回文树的定义和建立过程。
dalt
·
2018-02-26 21:00
[BZOJ4516][SDOI2016]生成魔咒(
后缀自动机
)
题目:我是超链接题解:对于一个状态s,他的right集合代表的子串的长度就是(len[fa],len[s]]。这道题我们需要动态的维护不同子串的个数,每次从头扫一遍直接计算肯定不行,我们考虑加入一个新字符会产生多少新的不同子串,这个个数其实就是(len[fa],len[s]]的区间长度。代码:#include#include#includeusingnamespacestd;constintN=2
wwyx2001
·
2018-02-24 21:08
省选
后缀自动机
字符串系列(一)——伟大的字符串Hash
也有许多的算法供我们选择,如:KMP、拓展KMP、最小表示法、Manacher、Trie、后缀数组、
后缀自动机
、AC自动机(树上KMP)等等等,日后我会逐一填坑。
Richard_for_OI
·
2018-02-10 21:31
字符串
[Hash
后缀自动机
] LOJ#6173. Samjia 和矩阵
枚举子矩阵的宽度不同宽度的子矩阵一定本质不同,相同宽度的子矩阵有n2n2个,把每个宽度为kk的子矩阵每一行hash一下,就变成了一个字符串,求本质不同的个矩阵用广义
后缀自动机
就行了#include#include
LowestJN
·
2018-01-26 16:11
后缀自动机
bzoj2806 [Ctsc2012]Cheat(
后缀自动机
+单调队列优化DP)
bzoj2806[Ctsc2012]Cheat原题地址:http://www.lydsy.com/JudgeOnline/problem.php?id=2806题意:注意:题目有改动,可识别的长度不小于90%即可,而不是大于90%简单来说就是:给定一个m个01串作为字典。n个询问。定义熟悉:把一个01串分成若干段,若某一段是字典中某个串的子串,则这个段”熟悉”,其中这个划分中长度最小的熟悉的段的长
Bfk_
·
2018-01-18 14:34
题解
bzoj
单调队列优化DP
后缀自动机
BZOJ 4516: [Sdoi2016]生成魔咒
后缀自动机
4516:[Sdoi2016]生成魔咒TimeLimit: 10Sec MemoryLimit: 128MBSubmit: 1328 Solved: 745[Submit][Status][Discuss]Description魔咒串由许多魔咒字符组成,魔咒字符可以用数字表示。例如可以将魔咒字符1、2拼凑起来形成一个魔咒串[1,2]。一个魔咒串S的非空字串被称为魔咒串S的生成魔咒。例如S=[1
BlackJack_
·
2018-01-07 14:32
—————————字符串
后缀自动机
BZOJ 3238: [Ahoi2013]差异
后缀自动机
树形dp
3238:[Ahoi2013]差异TimeLimit: 20Sec MemoryLimit: 512MBSubmit: 3660 Solved: 1655[Submit][Status][Discuss]DescriptionInput一行,一个字符串SOutput 一行,一个整数,表示所求值SampleInputcacaoSampleOutput54HINT2#include#include
BlackJack_
·
2018-01-06 21:01
—————————字符串
树形dp
后缀自动机
[BZOJ2865]字符串识别
后缀自动机
+线段树
首先只出现过一次的子串,就是SAM上那些|Right|=1的点。对于这些点考虑它们的最小拓展长度为Mini=Maxfai+1,又因为|Right|=1,所以这个点在字符串上的位置就是Maxi。所以对于[Maxi−Mini+1,Maxi]的位置x有一个长度为Mini的可以作为答案,对于[1,Mini]的位置x有一个长度为Maxi−x+1的可以作为答案。线段树区间最小值即可。代码:#include#i
DOFYPXY
·
2018-01-04 21:40
数据结构
线段树
后缀自动机
后缀自动机
学习小记
推荐博客:
后缀自动机
学习总结——functioner.
后缀自动机
的定义:我也没搞清楚。有限状态自动机的就是能识别字符串。而
后缀自动机
就能识别一个字符串的所有后缀,当然同时能识别子串。
Cold_Chair
·
2017-12-06 20:28
模版
[
后缀自动机
DP] LOJ#6071. 「2017 山东一轮集训 Day5」字符串
那么DP的转移可以用
后缀自动机
转移#include#include#include#includeusingnamespacestd;constintN=4000010,P=1e9+7;intn,cnt
LowestJN
·
2017-10-13 07:57
DP
后缀自动机
[
后缀自动机
DP] LOJ#6071. 「2017 山东一轮集训 Day5」字符串
那么DP的转移可以用
后缀自动机
转移#include#include#include#includeusingnamespacestd;constintN=4000010,P=1e9+7;intn,cnt
LowestJN
·
2017-10-13 07:57
DP
后缀自动机
hihocoder #1445 :
后缀自动机
二·重复旋律5
小Ho:我们最近在讨论
后缀自动机
,所以肯定是和
后缀自动机
有关!根据上周学习的SAM的基本概念和性质,SAM的每个状态st都包含了一部分S的子串,记作substrings(st),并且(1)对于两个不
但求-_-心安
·
2017-09-27 21:35
ACM-sam
HDU 4622 本质不同的子串个数:
后缀自动机
题意:给出一个串,每次求一个子串[l,r]。问这个串中,本质不同的子串个数,多组询问,数据小。题解:记住SAM是ON的。所以直接对每个[l,r]建SAM,然后建完就出答案。时间足够用。模板题为什么要写博客呢。。。。因为复用自动机的话。。要清空呀。。。。Code:#includeusingnamespacestd;constintmaxn=2e3+100;chars[maxn];intlen;int
calabash_boy
·
2017-09-21 23:56
HDU
9.13第一轮扫荡战果
1.处理内容字符串部manacher1题后缀数组1题
后缀自动机
1题最小表示法1题数学几何部miller-rabin1题动态规划部斜率优化2题2.字符串部(1)双倍回文(SHOI2011)暴力瞎搞搞#include
Friedrich_Taylor
·
2017-09-13 20:11
OI
字符串算法纲
动态规划纲
省队集训DAY5
对于原串建立
后缀自动机
,因为根节点到
后缀自动机
中的每个节点形成的路径都是一个本质不同的子串,所以我们按照拓扑须的倒叙更新大,ans[x]=(∑2
clover_hxy
·
2017-08-19 20:30
FJWC2017 Day3 T2 recollection (
后缀自动机
+线段树合并)
题目描述传送门题目大意:现在有一棵n个节点的树,点的编号是1到n,1号点是根节点,每条边上有一个字符(用不大于300的非负整数表示),且对于任意的一个点u,e:u→v(u=father[v])上的字符互不相同。定义r(u)为从节点u到根节点的路径上的字符组成的字符串。两个节点u,v的相似度f(u,v)定义如下:f(u,v)=Lcp(r(u),r(v))+Lcs(r(u),r(v))其中Lcp(a,
clover_hxy
·
2017-08-19 20:05
线段树
后缀自动机
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
后缀数据结构
[POI2000 bzoj2946]公共串
任务:l读入单词l计算最长公共子串的长度l输出结果分析:1.第一个串放进去建
后缀自动机
2.以后的每个串依次匹配,看到达每个状态的最短长度3.取所有状态的最大值#include#include#include
Frods
·
2017-05-29 17:22
字符串
后缀自动机
【
后缀自动机
sam学习小记】
定义顾名思义,
后缀自动机
就是可以识别原串所有后缀的自动机,最后回到达叶子状态,同时也可以识别所有连续子串。时间复杂度线性。由构造方法可知点数是线性的。
inklutcuah
·
2017-05-06 19:31
学习小记
字符串
GDOI&&GDSOI总结
后来还是拿到了20.第三题:一眼的
后缀自动机
,所以直接构建完
后缀自动机
之后就两三行的事情
Facico
·
2017-05-03 21:38
总结
省选
【GDOI2017模拟二试4.12】旅游路线(
后缀自动机
,trie)
DescriptionA君准备在Z国进行一次旅行,Z国中有n个城市,城市从1到n进行编号,其中1号城市为Z国首都。Z国的旅行交通网由n-1条单向道路构成,并且从任何一个城市出发都可以通过旅行网到达首都。一条旅行交通网中的旅行线路,可以用线路上所经过的城市来描述,如{v1,v2,v3,……,vm},它表示一条经过了m个城市的旅行路线,且城市vi到城市vi+1有一条单向道路相连。两个城市是相似的,当且
Facico
·
2017-04-16 11:54
后缀数组
省选
字典树
后缀自动机
GDOI2017模拟二式
t1是真的完全没想到,可能因为自己的字符串水平确实不高,所以平时也不怎么喜欢做字符串的题,而且字符串算法也不熟,可能即使想到了t1可以转化为求本质不同的字符串个数也打不出广义
后缀自动机
,这个短时间可能很难提高
Drin_E
·
2017-04-12 20:52
杂文
GDOI2017模拟二式
t1是真的完全没想到,可能因为自己的字符串水平确实不高,所以平时也不怎么喜欢做字符串的题,而且字符串算法也不熟,可能即使想到了t1可以转化为求本质不同的字符串个数也打不出广义
后缀自动机
,这个短时间可能很难提高
Drin_E
·
2017-04-12 20:52
杂文
bzoj 4199: [Noi2015]品酒大会 (
后缀自动机
+DP)
求r相似的子串数量和最大的代价(r=0…n-1)题解
后缀自动机
parent树上两个点的lca的len是两个字符串的最长公共后缀,但是这个要求的是开头位置的乘积,所以我就考虑将串反置,建立
后缀自动机
并构建
clover_hxy
·
2017-03-30 07:22
动态规划
后缀自动机
[BZOJ2946][Poi2000]公共串(
后缀自动机
)
题目描述传送门题解同spoj1812代码#include#include#includeusingnamespacestd;#defineN100005chars[N];intT,inf,n,p,np,q,nq,last,root,sz,ans;intch[N][30],pre[N],step[N],c[N],pt[N],Min[N],Max[N];voidextend(){for(inti=0;
Clove_unique
·
2017-03-29 21:19
题解
后缀自动机
后缀自动机
的性质应用
之前自己整理过
后缀自动机
的构造,现在再来整理一波性质。最长公共子串这个问题非常常见,大概可以根据难易程度分成两种。两个串的最长公共子串这个问题可以用DP来解决,也可以用后缀数组。
clover_hxy
·
2017-03-29 09:41
后缀自动机
bzoj 3473: 字符串 (
后缀自动机
)
题目描述传送门题目大意:给定n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串?题解同bzoj3277代码#include#include#include#include#defineN200003#defineLLlonglongusingnamespacestd;inttot,n,k,point[N],nxt[N],v1[N],ch[N][30],fa[N
clover_hxy
·
2017-03-28 11:13
后缀自动机
后缀自动机
后缀自动机
算法.我们对文本T用O(length(T))建立
后缀自动机
。现在回答单次询问。假设状态——变量v,最初是初始状态T_0.我们沿字符串P给出的路径走,因此从当前状态经转移来到新的状态v。
priority_ez
·
2017-03-10 20:55
字符串
后缀自动机
【bzoj3238】差异
后缀自动机
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=3238【题解】题上所给公式可以化为其中:=1×(n-1)+2×(n-2)+3×(n-3)+……+(n-1)×1+2×1+3×2+……+n×(n-1)=(n+1)+2×(n+1)+3×(n+1)+……+(n-1)(n+1)=(1+2+3+……+(n-1))(n+1)=n(n-1)(n+1)/2
chty_syq
·
2017-02-23 07:16
bzoj
后缀自动机
【bzoj4566】找相同字符
后缀自动机
AC通道:http://www.lydsy.com/JudgeOnline/problem.php?id=4566【题解】我们还是先把A串建成SAM,然后让B串在SAM上跑因为相同子串数=不同长度的子串数*出现次数所以每个结点对答案的贡献就是Right[x]*(len-Min(x)+1)我们知道SAM的一个性质:Min(x)-1=Max(parent(x))所以贡献就是Right[x]*(len-
chty_syq
·
2017-02-22 20:29
bzoj
后缀自动机
[BZOJ2882][
后缀自动机
]工艺
后缀自动机
裸题将序列复制两遍建
后缀自动机
每次贪心地走最小的边走N次得到答案#include#include#include#include#include#defineN1000010usingnamespacestd
LowestJN
·
2017-01-30 22:11
后缀自动机
[BZOJ3998][TJOI2015]弦论
后缀自动机
题意求给定字符串的第k大子串看这里其实知道
后缀自动机
的性质后推敲一下还是蛮好理解的。
LowestJN
·
2017-01-30 19:52
后缀自动机
bzoj 2806: [Ctsc2012]Cheat (
后缀自动机
+dp+单调队列)
2806:[Ctsc2012]CheatTimeLimit:20SecMemoryLimit:256MBSubmit:1056Solved:544[Submit][Status][Discuss]DescriptionInput第一行两个整数N,M表示待检查的作文数量,和小强的标准作文库的行数接下来M行的01串,表示标准作文库接下来N行的01串,表示N篇作文OutputN行,每行一个整数,表示这篇
clover_hxy
·
2017-01-11 21:41
动态规划
单调队列
后缀自动机
[hiho一下 第130周]
后缀自动机
题目来源:https://hihocoder.com/problemset/problem/1457原命题等价于求
后缀自动机
里面的路径数量在任意两个字符串之间插入一个符号“:",把所有的字符串连接成一个长串
HbFS-
·
2017-01-07 23:21
后缀自动机
[hiho一下 第129周]
后缀自动机
题目来源:https://hihocoder.com/problemset/problem/1449给定字符串s,求长度为k(需要将所有的k求出来)的子串中出现最多子串的出现次数对于每一个节点u,当节点u为节点v的后缀链接,即u=link[v],那么以v为结尾的后缀包含在了u中。定义F[i]为节点i后缀集合里面所有串在s里面出现的次数,显然每一个节点里所有串出现的次数都是相等的。对于s的所有子串s
HbFS-
·
2017-01-07 21:00
后缀自动机
[hiho一下 第128周]
后缀自动机
题目链接:https://hihocoder.com/problemset/problem/1445求给定字符串s不同子串的个数即求该字符串构成的
后缀自动机
里面包含了多少个后缀等价于求这个
后缀自动机
里面的路径的个数每个
后缀自动机
节点所包含的后缀集合大小为
HbFS-
·
2017-01-07 21:16
后缀自动机
[BZOJ2882]工艺(
后缀自动机
+stl||最小表示法)
题目描述传送门题解把串重复一遍然后建立
后缀自动机
从头找一个最小的输出就行了注意字符集非常大需要用map,然后可以用一个迭代器来找其实这道题正确的姿势应该是最小表示法具体的可以看WC2003周源的课件代码
Clove_unique
·
2017-01-01 11:00
题解
后缀自动机
stl
[SPOJ8222]NSUBSTR - Substrings(
后缀自动机
)
题目描述传送门题意:定义f(i)为长度为i的子串的最多出现次数(可重复),求f(1…n)题解很显然f(1..n)不升,那么可以用f(i)=max{f(i),f(i+1)}right集合表示当前状态在哪里出现过,其实就是求right集合的大小主链上的所有的点right集合初始为1(因为它代表了原串的一个前缀)如果两个点的right集合有交集,那么一定一个是另一个的真子集所以在parent树上把儿子的
Clove_unique
·
2016-12-30 08:31
题解
后缀自动机
[SPOJ1812]LCS2 - Longest Common Substring II(
后缀自动机
)
题目描述传送门题意:给出若干串,求最长公共子串。题解这明明就是一道sa的题嘛,可是为了练习sam用sam来写首先对于第一个串构建sam对于每一个状态s,记录一下它对于每一个串(除了第一个串)的最长匹配长度对于某一个状态s,如果除第一个串之外的串匹配到此所得的最长长度是a1,a2,a3...an−1,那么这个状态的最长公共子串应为min{a1,a2,a3...an−1,step(s)}和只有两个串相
Clove_unique
·
2016-12-29 21:59
题解
后缀自动机
[SPOJ1811]LCS - Longest Common Substring(
后缀自动机
)
题解这明明就是一道sa的题嘛,可是为了练习sam用sam来写
后缀自动机
第一题首先对第一个串建立sam让第二个串在sam上暴力匹配,匹配不到就蹦到它的pre指针维护一个能匹配上的最长长度值得注意的是,因为每一个点
Clove_unique
·
2016-12-29 20:42
题解
后缀自动机
[BZOJ3238][Ahoi2013]差异(后缀数组+单调栈||
后缀自动机
+树形dp)
用两次单调栈可以求出来以某一个点的height为最小值的最长区间可以发现以这个点为分界点,区间的左右两边两两组合最小值一定是当前点的height,也就是lcp的长度然后再计算答案就可以了然后这道题还有
后缀自动机
的做法因为是
Clove_unique
·
2016-12-28 10:50
题解
dp
省选
单调栈
后缀数组
后缀自动机
bzoj 2555: SubString (LCT+
后缀自动机
)
2555:SubStringTimeLimit:30SecMemoryLimit:512MBSubmit:1942Solved:554[Submit][Status][Discuss]Description懒得写背景了,给你一个字符串init,要求你支持两个操作(1):在当前字符串的后面插入一个字符串(2):询问字符串s在当前字符串中出现了几次?(作为连续子串)你必须在线支持这些操作。Input第
clover_hxy
·
2016-12-25 14:15
字符串处理
LCT
后缀自动机
bzoj 3277: 串 (广义
后缀自动机
)
3277:串TimeLimit:10SecMemoryLimit:128MBSubmit:357Solved:144[Submit][Status][Discuss]Description字符串是oi界常考的问题。现在给定你n个字符串,询问每个字符串有多少子串(不包括空串)是所有n个字符串中至少k个字符串的子串(注意包括本身)。Input第一行两个整数n,k。接下来n行每行一个字符串。Output
clover_hxy
·
2016-12-24 17:17
字符串处理
后缀自动机
bzoj 2780: [Spoj]8093 Sevenk Love Oimaster (广义
后缀自动机
)
2780:[Spoj]8093SevenkLoveOimasterTimeLimit:1SecMemoryLimit:128MBSubmit:738Solved:257[Submit][Status][Discuss]DescriptionOimasterandsevenkloveeachother.Butrecently,sevenkheardthatagirlnamedChuYuXunwasd
clover_hxy
·
2016-12-24 16:56
字符串处理
后缀自动机
bzoj 3238: [Ahoi2013]差异 (
后缀自动机
+树形dp)
3238:[Ahoi2013]差异TimeLimit:20SecMemoryLimit:512MBSubmit:2268Solved:1031[Submit][Status][Discuss]DescriptionInput一行,一个字符串SOutput一行,一个整数,表示所求值SampleInputcacaoSampleOutput54HINT2#include#include#include#
clover_hxy
·
2016-12-22 07:32
动态规划
字符串处理
后缀自动机
bzoj 3926: [Zjoi2015]诸神眷顾的幻想乡(广义
后缀自动机
)
3926:[Zjoi2015]诸神眷顾的幻想乡TimeLimit:10SecMemoryLimit:512MBSubmit:1009Solved:596[Submit][Status][Discuss]Description幽香是全幻想乡里最受人欢迎的萌妹子,这天,是幽香的2600岁生日,无数幽香的粉丝到了幽香家门前的太阳花田上来为幽香庆祝生日。粉丝们非常热情,自发组织表演了一系列节目给幽香看。幽
clover_hxy
·
2016-12-21 16:56
字符串处理
后缀自动机
bzoj 3998: [TJOI2015]弦论 (
后缀自动机
)
3998:[TJOI2015]弦论TimeLimit:10SecMemoryLimit:256MBSubmit:2024Solved:665[Submit][Status][Discuss]Description对于一个给定长度为N的字符串,求它的第K小子串是什么。Input第一行是一个仅由小写英文字母构成的字符串S第二行为两个整数T和K,T为0则表示不同位置的相同子串算作一个。T=1则表示不同位
clover_hxy
·
2016-12-20 22:31
字符串处理
后缀自动机
SPOJ 7258 SUBLEX - Lexicographical Substring Search (
后缀自动机
)
SUBLEX-LexicographicalSubstringSearch#suffix-array-8LittleDaniellovestoplaywithstrings!Healwaysfindsdifferentwaystohavefunwithstrings!Knowingthat,hisfriendKinandecidedtotesthisskillssohegavehimastring
clover_hxy
·
2016-12-20 19:49
字符串处理
后缀自动机
bzoj 2946: [Poi2000]公共串 (
后缀自动机
)
2946:[Poi2000]公共串TimeLimit:3SecMemoryLimit:128MBSubmit:783Solved:340[Submit][Status][Discuss]Description给出几个由小写字母构成的单词,求它们最长的公共子串的长度。任务:l读入单词l计算最长公共子串的长度l输出结果Input文件的第一行是整数n,1#include#include#include#
clover_hxy
·
2016-12-20 18:11
字符串处理
后缀自动机
后缀自动机
的构造
后缀自动机
的构造最近看了一些
后缀自动机
的论文,对于
后缀自动机
的构造过程有了些许了解。首先
后缀自动机
顾名思义就是一颗包含了原串s所有后缀的字母树。
clover_hxy
·
2016-12-20 10:56
字符串处理
后缀自动机
上一页
4
5
6
7
8
9
10
11
下一页
按字母分类:
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
其他