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
后缀自动机
HDU 4641
动态更新
后缀自动机
,每次不断依据当前添加的节点不断往前寻找父节点上字符串最多可出现的次数 这里为了减少运算,当父节点已经达到k次就不在往前寻找,因为之前的必然达到k次,也已经统计在内
·
2015-10-27 14:09
HDU
HDU 4622 求解区间字符串中的不同子串的个数
题目大意: 给定一个长度<2000的串,再给最多可达10000的询问区间,求解区间字符串中的不同子串的个数 这里先考虑求解一整个字符串的所有不同子串的方法 对于
后缀自动机
来说
·
2015-10-27 14:09
字符串
SPOJ NSUBSTR
题目大意: 给定一个字符串,求每个对应的长度能产生的相同子串的最大个数 这里构建好
后缀自动机
之后,再将整个字符串从头到尾扫一遍,然后将每个对应的点上的sc值+1 表示从头走到尾的前提下
·
2015-10-27 14:09
substr
SPOJ LCS2 多个串的最长公共子串
这里串最多有10个,找所有串的最长公共子串 这里
后缀自动机
做,以第一个串建立
后缀自动机
,后面的串一个个去匹配,每次得到当前串在可到达状态上所能得到的最长后缀长度 拿所有串匹配后得到的结果进行计算
·
2015-10-27 14:08
poj
SPOJ LCS
后缀自动机
找最大公共子串
这里用第一个字符串构建完成
后缀自动机
以后 不断用第二个字符串从左往右沿着
后缀自动机
往前走,如能找到,那么当前匹配配数加1 如果找不到,那么就不断沿着后缀树不断往前找到所能匹配到当前字符的最大长度
·
2015-10-27 14:08
poj
【
后缀自动机
】
后缀自动机
也是解决字符串问题的常用工具,犀利在O(N)的空间复杂度下存在给定串的后缀以及子串,而且支持在线的操作。
·
2015-10-27 12:56
自动
Substrings(
后缀自动机
模板)
后缀自动机
+dp。
·
2015-10-23 09:19
substring
HDU 4622 Reincarnation (查询一段字符串的不同子串个数,
后缀自动机
)
Reincarnation Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/65536 K (Java/Others)Total Submission(s): 843 Accepted Submission(s): 283 Prob
·
2015-10-23 08:25
字符串
SPOJ LCS2(Longest Common Substring II-
后缀自动机
向父亲更新)
1812. Longest Common Substring II Problem code: LCS2 A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the set of lowercas
·
2015-10-23 08:30
substring
SPOJ SUBLEX 求第k小子串
题目大意: 对于一个给定字符串,找到其所有不同的子串中排第k小的子串 先构建
后缀自动机
,然后我们可以将整个
后缀自动机
看做是一个DAG图,那么我们先进行拓扑排序得到 *b[
·
2015-10-23 08:06
poj
【HDU】5470 Typewriter 【
后缀自动机
+dp】
传送门:【HDU】5470Typewriter首先暴力的方法就是,对第i个位置,我枚举j(ji+1时,j是单调不减的!因为如果在添加第i+1个字符时j减小了,那么在第i个字符的时候我们就可以减小,矛盾。这样我们就可以用单调队列来求区间最小值了(单调队列求最小值的原理是维护一个递增的队列,当枚举的左端点大于队列最左端表示的点,就把队列最左端的点丢弃,加入一个点就维护这个队列,使得维持递增这个性质。最
u013368721
·
2015-09-29 22:00
【
后缀自动机
】 HDOJ 5431 AB String
在sam上做dp统计有多少的串不是a的子串,然后找到长度,dfs找串就行了。。#include usingnamespacestd; typedeflonglongLL; constintalpha=2; constintmaxn=40005; constintmaxm=30; structnode { intlen; LLcnt[maxm]; node*fa,*ch[alpha]; }poo
blankcqk
·
2015-09-06 16:00
后缀自动机
HDOJ 5343 MZL's Circle Zhou
后缀自动机
对第二个串建SAM求出第二个串的以每个字符开头的不同子串的数目..再对第一个串建SAM,遍历自动机如果某个节点后面没有某个字符则答案加上这个节点的出现次数乘上以这个字符为开头的在第二个串中的不同子串的数目..MZL'sCircleZhouTimeLimit:2000/1000MS(Java/Others) MemoryLimit:131072/131072K(Java/Others)Tota
u012797220
·
2015-08-26 21:00
ZOJ 3891 K-hash
后缀自动机
后缀自动机
求不同的串,然后DP.....K-hashTimeLimit: 2Seconds MemoryLimit: 131072KBK-hashisasimplestringhashfunction.Itencodesastring
u012797220
·
2015-08-26 11:00
论如何优雅的处理回文串 - 回文自动机详解
处理字符串的算法很多:KMP,E-KMP,AC自动机,后缀三兄弟:后缀树、后缀数组、
后缀自动机
,Trie树、Trie图,符串hash...但以上数据结构在处理回文串上还是稍有欠缺,用这些来处理回文显得太小题大做
crazyacking
·
2015-08-19 15:00
【
后缀自动机
】 BZOJ 3926 ZJOI2015 诸神眷顾的幻想乡
好神的题。。。。#include usingnamespacestd; typedeflonglongLL; constintalpha=26; constintmaxn=4000005; constintmaxm=200005; structnode { intlen; node*ch[alpha],*fa; }pool[maxn],*last[maxn],*root; structEdg
blankcqk
·
2015-08-16 19:00
后缀自动机
HDU 5343 MZL's Circle Zhou【
后缀自动机
】
对于a串可能和b串重复的部分,我们总能找到一个位置将该串分成前半段和后半段,同时使得前半段属于a串的部分达到最长,即在该串划分的位置后面的那个字母在属于a串的部分的后继为空(也就是说不能找到更长的前半段划分方式了),所以我们只要预处理以字符x为开头的b串的个数即可。然后在A的每一个子串枚举算后面有没有以字符x为开的后继。新建图//whn6325689 //Mr.Phoebe //http://bl
u013007900
·
2015-08-11 10:00
【
后缀自动机
】 BZOJ 3998: [TJOI2015]弦论
建立好
后缀自动机
后,分别讨论一下是要求重复子串还是不重复子串。。。
blankcqk
·
2015-08-07 13:00
后缀自动机
【HDU】5343 MZL's Circle Zhou【
后缀自动机
】
传送门:【HDU】5343MZL’sCircleZhou对于a串可能和b串重复的部分,我们总能找到一个位置,使得a串达到最长,即a串的后继为空,所以我们只要预处理以字符x为开头的b串的个数即可。my code:#include usingnamespacestd; typedeflonglongLL; #defineclr(a,x)memset(a,x,sizeofa) constintM
u013368721
·
2015-08-05 22:00
ACM中常用算法----字符串
ACM中常用算法—-字符串ACM中常用的字符串算法不多,主要有以下几种:Hash字典树KMPAC自动机manacher后缀数组EX_KMPSAM(
后缀自动机
)回文串自动机下面来分别介绍一下:0.Hash
u012797220
·
2015-07-26 11:00
字符串
ACM
【字符串数据结构后缀系列Part3】
后缀自动机
的性质和应用
学会了构建SAM之后,我们要开始学如何使用SAM来处理各种问题了.我们先来整体看一下SAM的性质(引自2015国家集训队论文集张天扬《
后缀自动机
及其应用》):1.每个状态s代表的串的长度是区间(lenfas
CreationAugust
·
2015-07-24 16:00
字符串
后缀自动机
【模板整合】SAM
后缀自动机
的构建
太弱了QAQ学完SAM这么久才学会构建QAQ#include #include #include #include #include #defineMAXN200010 usingnamespacestd; structsam { intp,q,np,nq; intcnt,last; inta[MAXN][26],len[MAXN],fa[MAXN]; sam() { last=++cnt; }
CreationAugust
·
2015-07-24 15:00
字符串
模板
后缀自动机
后缀自动机
修订
玛德。。。以后不能再瞎变模板了。。。 LCS: 1 #include<iostream> 2 #include<cstdio> 3 #include<cmath> 4 #include<algorithm> 5 #include<queue> 6 #include<cstring> 7 #def
·
2015-07-22 13:00
自动
[置顶] 【关于字符串要补的题】
id=28016后缀数组 (误) 只能用
后缀自动机
。。
zy691357966
·
2015-07-20 03:00
【字符串数据结构后缀系列Part2】
后缀自动机
学习笔记
由SA到SAM无疑是一个难度极大的跨越.听说SAM非常厉害可以线性构造SA再也不需要O(nlogn)的倍增构造SA(虽然由于常数速度和O(nlogn)并没有太大区别233)简直太神啦有木有>wω__lenp+1.这时,q表示的串里长度不超过lenp+1的right都会增加一个元素,其他串则不会,这就导致q状态对应的所有串的right集合不同,因此新建状态nq(注意与np区分开),令nq表示q代表的
CreationAugust
·
2015-07-07 21:00
数据结构
字符串
后缀自动机
【字符串数据结构后缀系列Part1】后缀数组学习笔记
AC自动机好厉害啊www所以我要学
后缀自动机
和后缀数组啦(有什么关系吗魂淡(╯‵□′)╯︵┻━┻)没关系这并不妨碍什么==——————————————–线割分是我>ws2[i],则串s1字典序大于串s2
CreationAugust
·
2015-07-05 16:00
数据结构
字符串
后缀数组
【
后缀自动机
】 CodeForces 235C Cyclical Quest
先对原串建立
后缀自动机
。考虑每个询问。询问的子串相当于考虑它的n个循环串,因此我们把询问串连接在询问串,那么这个新串的长度为n的子串就是所要求的串。
blankcqk
·
2015-06-27 13:00
后缀自动机
Cyclical Quest
后缀自动机
将S建
后缀自动机
,对于每个串复制两倍的长度(2L)在自动机上跑,统计长度为L时,对应节点的出现次数C.CyclicalQuesttimelimitpertest3secondsmemorylimitpertest512megabytesinputstandardinputoutputstandardoutputSomedaysago
u012797220
·
2015-06-17 23:00
后缀自动机
学习
后缀自动机
就是在n级
a809146548
·
2015-06-08 21:00
编程
C++
c
算法
ACM
【
后缀自动机
】[SPOJ SUBLEX]Lexicographical Substring Search
题目大意,给定一个字符串求第K大的子串首先给这个字符串建立SAM然后发现实际上每一个节点就可以表示一个子串然后实际上就是从root到这个节点的路径,然后按照splay的那种思路建立size然后用k去找在当前节点的哪一个子树中,然后减去当前子树的size就可以得到在下一个子树中的位置,然后重复当前操作就可以,得到这个字符串#include #include #include #include usi
JeremyGJY
·
2015-06-06 21:00
后缀自动机
【
后缀自动机
】[SPOJ LCS2]Longest Common Substring II
思路就是对于建立第一个串的SAM然后存储每一个节点和当前的这个串能够匹配的最大长度,然后存储对于当前的这个节点全局的能够匹配的最小长度,然后每次更新完当前之后要对每个节点根据len排序然后向前对失配边的上一个节点的当前能够匹配的最大长度进行更新,就是{原来的匹配最大长度,原来的len,当前节点的最大匹配}最后在全局匹配的变量里面取最大值就行了#include #include #include #
JeremyGJY
·
2015-06-06 15:00
后缀自动机
【
后缀自动机
】[SPOJ LCS]Longest Common Substring
模板题目,感觉和用AC自动机差不多,就是一个一个字符在自动机里面匹配,找不到就沿着失配边往上走,然后如果当前节点变成了null那么就不能继续匹配,就把当前设置成root然后len变成0,否则就沿着边继续走,然后把len变成当前的节点的len+1因为是失配边,所以前边的都可以匹配,变成当前的len+1#include #include #include usingnamespacestd; cons
JeremyGJY
·
2015-06-06 14:00
后缀自动机
【字符串新武器】
后缀自动机
E6%9C%BA%E5%88%9D%E6%8E%A2.htmlhttp://blog.sina.com.cn/s/blog_7812e98601012cim.html详细构造见上述链接,此处介绍性质与理解
后缀自动机
具有两大性质
u013007900
·
2015-06-04 20:00
Codeforces Round #305 (Div. 1)E. Mike and Friends【后缀数组+线段树】
传送门:CodeforcesRound#305(Div.1)E.MikeandFriends这题既然求得是子串,就可以用后缀数组来做(也可以用
后缀自动机
balabala)我的方法是O(nlog2n),O
u013007900
·
2015-05-31 20:00
后缀
【
后缀自动机
】Codeforces Round #305 (Div. 1) E. Mike and Friends
对所有的串加特殊字符隔开,单串建立
后缀自动机
。然后将每个的fa边反向建树,对树dfs得到dfs序,对dfs序建立线段树。询问离线,每个询问拆成1-(l-1)和1-r。。。
blankcqk
·
2015-05-29 13:00
后缀自动机
【codeforces】Codeforces Round #305 (Div. 1)E. Mike and Friends【后缀数组+线段树】
传送门:【codeforces】CodeforcesRound#305(Div.1)E.MikeandFriends题目分析:这题用后缀数组来做,十分直观(另一个原因是我
后缀自动机
并不会,只做过一道模板题
u013368721
·
2015-05-27 19:00
ACdream 1430 SETI
后缀自动机
题目大意:就是对于给定的串S,长度不超过10000,求出其有多少种子串T,使得T在S中至少不重叠地出现了2次以上大致思路:很明显的
后缀自动机
吧,建立S的
后缀自动机
,记录每个节点对应的串出现的最左和最右位置
u013738743
·
2015-05-20 21:00
后缀自动机
ACdream
1430
SETI
BZOJ 2555 SubString
后缀自动机
题目大意:如题面所述,在线状态下接受添加字符和查询某个字符串出现的次数加上了一些加密的条件使得被迫在线查询大致思路:就是
后缀自动机
的裸题吧=_=没什么特别的,直接贴代码好了,不懂的看代码细节吧代码如下:
u013738743
·
2015-05-05 18:00
substring
后缀自动机
bzoj
2555
HDU 3518 Boring counting
后缀自动机
题目大意:就是对于给出的字符串S,长度不超过1000,求其中本质不同的子串的数量,这些子串满足在字符串S中出现了至少不重合的2次大致思路:如果将S建立
后缀自动机
的话,记录每个节点处的串最早一次和最后一次出现的位置
u013738743
·
2015-05-05 09:00
HDU
后缀自动机
Counting
boring
3518
BZOJ4032【
后缀自动机
】【序列自动机】
原来还有序列自动机这种神奇的东西./*Iwillwaitforyou*/ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #definemakemake_pair #definefifirst
Lethelody
·
2015-05-04 17:00
HDU 5008 Boring String Problem 后缀数组
题目大意:就是给出一个字符串(长度不超过10W),接着Q次询问,对于每次询问要找到第K小子串,注意这里的字串是本质不同的子串, 大致思路:由于Q可以达到10^5使用
后缀自动机
的话容易超时,于是需要使用后缀数组
u013738743
·
2015-05-04 15:00
后缀数组
HDU
5008
【BZOJ3998】【TJOI2015】弦论
后缀自动机
puts("转载请注明出处[vmurder]谢谢"); puts("网址:blog.csdn.net/vmurder/article/details/45369569"); }题解:首先我们可以建一个
后缀自动机
Vmurder
·
2015-04-29 17:00
后缀自动机
BZOJ3998
TJOI2015
弦论
BZOJ 2806 (ctsc 2012) Cheat
后缀自动机
预处理 + DP
题目大意:就是现在有m个01串代表搜集的文章,现在要检查n篇作文,对于每一篇作文找到最大的L值,一篇文章的L值可以将这篇文章分割成多个部分,其中长度>=L的且在m个01串中出现过的串称之为熟悉的串,熟悉的串的长度加起来要达到文章总长度的90%就称这篇文章熟悉,求最大的L使得这篇文章熟悉大致思路:首先将m篇文章连起来中间用另外的字符隔开,然后将要检查的作文在这个自动机上惊醒遍历,得到每个位置的字符向
u013738743
·
2015-04-28 09:00
2012
后缀自动机
Cheat
bzoj
cstc
2806
BZOJ 4032 HEOI2015 最短不公共子串
后缀自动机
+序列自动机+BFS
题目大意:给定字符串A和B,求A最短的子串/子序列S满足S不是B的子串/子序列这题真TM有毒*2搞法类似这道题然后子串是
后缀自动机
子序列自然就是序列自动机了==每更新一个x节点时所有没有x的后继的节点都连向这个节点每个节点的
PoPoQQQ
·
2015-04-27 20:00
bfs
后缀自动机
bzoj
BZOJ4032
HDU 4270 Dynamic Lover
后缀自动机
题目大意:就是现在初始有一个字符串,然后接下来有m(m #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include usingnames
u013738743
·
2015-04-27 15:00
dynamic
HDU
后缀自动机
lover
4270
后缀自动机
初步
qq-pf-to=pcqq.grouphttp://blog.csdn.net/huyuncong/article/details/7583214学好
后缀自动机
的关键就是理解其转移边与父亲变得不同意义。
Zeyu_King
·
2015-04-23 20:00
后缀自动机
BZOJ 3998 TJOI2015 弦论
后缀自动机
题目大意:求严格/非严格K小子串首先建立Sam然后BFS一遍求出每个点代表状态的出现次数此时如果是严格的那么每个点代表状态的出现次数都应该是1然后DFS一遍求出每个节点的后继状态个数然后就随便搞了啊==妈了个鸡卡常数。。。#include #include #include #include #defineM500500 usingnamespacestd; inttype,k; chars[M]
PoPoQQQ
·
2015-04-21 18:00
后缀自动机
bzoj
BZOJ3998
【POJ】1509 Glass Beads 【
后缀自动机
】
传送门:【POJ】1509GlassBeadsmycode:#include #include #include #include usingnamespacestd; typedeflonglongLL; typedefunsignedlonglongULL; typedefpairpii; #definerep(i,a,b)for(inti=(a);i=(b);--i) #definecl
u013368721
·
2015-04-21 16:00
poj
Codeforces 427D Match & Catch
后缀自动机
或 后缀数组
求出他们最短的一个公共字串P,满足P在S1中只出现1次,P在S2中也只出现一次,输出P最小的长度,如果这样的P不存在,输出-1大致思路:很明显的一个做法是将S1和S2连接起来中间用未出现的字符隔开,然后建立
后缀自动机
u013738743
·
2015-04-16 20:00
后缀数组
catch
match
codeforces
后缀自动机
427D
HDU 4622 Reincarnation 后缀数组 或
后缀自动机
题目大意:就是现在给定字符串S(长度不超过2000),接下来是Q次询问(Q0)这样复杂度是O(Q|S|)如果用
后缀自动机
来做的话我刚开始想的是对于S建立
后缀自动机
之后,对于每次询问,将子串[l,r]在S
u013738743
·
2015-04-16 19:00
后缀数组
HDU
后缀自动机
4622
Reincarnation
上一页
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
其他