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
----后缀自动机
poj 2774 最长公共子串--字符串hash或者后缀数组或者
后缀自动机
http://poj.org/problem?id=2774想用后缀数组的看这里:http://blog.csdn.net/u011026968/article/details/22801015本文主要讲下怎么hash去找开始的时候写的是O(n^2logn)算法果断超时。。。虽然也用了二分的,,代码如下://hash+二分 #include #include #include #include #
u011026968
·
2014-08-10 00:00
HDU 3518 Boring counting
后缀自动机
。。
u011788531
·
2014-08-08 21:00
后缀自动机
后缀自动机
后缀自动机
学习
后缀自动机
就是能识别一个串的所有后缀,附加功能是可以识别所有字串,还能统计字串个数。
firenet1
·
2014-07-31 08:00
C++
ACM
后缀自动机
spoj1811
hdu4622
后缀数组 学习指南
而后缀数组、
后缀自动机
、后缀仙人掌都是后缀树的替代品。后缀数组SuffixArray是一个一维数组,它将字符串S的n个后缀从小到大排序后把排好序的后缀的开头位置顺次放入数组中。
cyendra
·
2014-07-30 17:00
HDU 4416 Good Article Good sentence
思路:我们先构造S的
后缀自动机
,然后将每一个Ti在S的SAM上做匹配,类似于LCS,在S中的每一个状态记录一个变量deep,表示T1~Tn,在该状态能匹配的最大长度是多少,将每一个Ti匹配完之后,我们将
u011788531
·
2014-07-26 22:00
数据结构
算法
字符串
substring
后缀自动机
SPOJ LCS. Longest Common Substring
后缀自动机
模板。。
u011788531
·
2014-07-26 11:00
Algorithm
算法
模板
ACM
后缀自动机
如何优雅的研究 RGSS3 番外(一) ruby 实现的
后缀自动机
*我真的不会ruby呀*#encoding:utf-8 #============================================================================== #■Suffix_Automaton #------------------------------------------------------------------------
cyendra
·
2014-07-22 21:00
后缀自动机
(SAM)学习指南
*在学习
后缀自动机
之前需要熟练掌握WA自动机、RE自动机与TLE自动机*什么是
后缀自动机
后缀自动机
SuffixAutomaton(SAM)是一个用O(n)的复杂度构造,能够接受一个字符串所有后缀的自动机
cyendra
·
2014-07-20 18:10
字符串
后缀自动机
(SAM)学习指南
*在学习
后缀自动机
之前需要熟练掌握WA自动机、RE自动机与TLE自动机*什么是
后缀自动机
后缀自动机
SuffixAutomaton(SAM)是一个用O(n)的复杂度构造,能够接受一个字符串所有后缀的自动机
cyendra
·
2014-07-20 18:00
字符串匹配:从
后缀自动机
到KMP
后缀自动机
(sam)上的字符串匹配====我们把相对较短的模式串构造成sam。
deyangliu
·
2014-07-08 20:00
算法
字符串
HDOJ 4416 Good Article Good sentence
题解转自:http://blog.csdn.net/dyx404514/article/details/88074402012杭州网络赛的一道题,后缀数组
后缀自动机
都行吧。
u012797220
·
2014-07-06 16:00
后缀自动机
的直观理解
后缀自动机
(SAM)搜了网上,多介绍应用,[3]算是一个比严格的定义性描述,并给出了证明。但是这个证明我并未看懂,下面综合一些资料给一些个人的直观但不失严谨的理解。
deyangliu
·
2014-07-01 19:00
算法
字符串
字符串
后缀自动机
:Directed Acyclic Word Graph
trie--suffixtree--suffixautoma有这么一些应用场景:即时响应用户输入的AJAX搜索框时,显示候选列表。搜索引擎的关键字个数统计。后缀树(SuffixTree):从根到叶子表示一个后缀。仅仅从这一个简单的描述,我们可以概念上解决下面的几个问题:P:查找字符串o是否在字符串S中A:若o在S中,则o必然是S的某个后缀的前缀。用S构造后缀树,按在trie中搜索字串的方法搜索o即
deyangliu
·
2014-06-24 20:00
算法
字符串
POJ 1509 Glass Beads
后缀自动机
的简单运用....GlassBeadsTimeLimit: 3000MS MemoryLimit: 10000KTotalSubmissions: 2352 Accepted: 1375DescriptionOnceuponatimetherewasafamousactress.Asyoumayexpect
u012797220
·
2014-06-23 17:00
SPOJ 1811LCS Longest Common Substring
后缀自动机
裸题....LongestCommonSubstringTimeLimit: 2000MS MemoryLimit: Unknown 64bitIOFormat: %lld&%llu[Submit
u012797220
·
2014-06-23 15:00
spoj7258 Lexicographical Substring Search(SUBLEX)
后缀自动机
给一个字符串S,若干个查询,每个查询k输出字典序第k小的S的子串。把字符串一次插入到自动机中,由于在不考虑父边的情况下,可以看做一个有向无环图,那么我们可在在这个图上进行dp,令dp[i]表示从节点i开始有多少个子串,转移dp[i]=dp[j]+1(存在一条边c使得i-->j),然后就是从根节点贪心走一遍就可以得到要求的串了。 另外吐槽一句SPOJ上的题卡时间卡的太凶残了....#inclu
yanglei040
·
2014-06-22 18:00
poj1509 Glass Beads SAM
方法很多,
后缀自动机
也能做,把原串复制两边,一次插入到自动机中,然后从根节点开始,从小打到走len步,当前的位置就是最小字典序的串的位置了..
yanglei040
·
2014-06-20 14:00
AC自动机+
后缀自动机
AC自动机http://www.notonlysuccess.com/index.php/aho-corasick-automaton/
后缀自动机
学习总结
后缀自动机
(FHQ+Neroysq补完)字典树上建失败指针什么的
u011788531
·
2014-05-14 16:00
算法
后缀自动机
AC自动机
自动机
Codeforces round 146 C - Cyclical Quest(
后缀自动机
)
解题思路:拿到这题,第一想法就是
后缀自动机
。。做法是这样的,先给母串建sam,为了解决同构问题,我们将读进来的子串复制一遍,除去最后一个字符。然后拿复制好的字串去自动机
No__stop
·
2013-11-26 18:00
codeforces
后缀自动机
hdu4622
后缀自动机
模板
抄来的代码#include #include #include #include usingnamespacestd; #defineN5050 structNode { intstep; Node*pre,*nxt[26]; voidclear() { step=0; pre=NULL; memset(nxt,NULL,sizeof(nxt)); } intcalc() { if(pre==NU
Jackyguo1992
·
2013-10-23 22:00
HDU 4436 str2int (
后缀自动机
SAM,多串建立)
str2int Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others)Total Submission(s): 841 Accepted Submission(s): 297 Problem D
·
2013-10-11 19:00
int
spoj lcs2
后缀自动机
SAM
拿第一个串构造
后缀自动机
,每个状态新增两个变量n1,m1,分别是当前串匹配到当前状态时时的最长子串的长度,前k个串跑完后,在当前状态可能得到的最长公共子串长度。
yanglei040
·
2013-10-08 16:00
hdu4468 spy KMP
题目保证每个字符串不超过10^5,全部数据总长不超过2*10^6.看到单组10^5,一开始感觉可能是个后缀数组,后来又往
后缀自动机
上去想。
yanglei040
·
2013-10-06 19:00
poj2774,hdu1403 lcs 后缀数组,
后缀自动机
求两个字符串的最长公共字串。练习模板的题..用后缀数组就把两个串拼起来,两串之间和末尾添加分隔符,然后扫一遍height数组,判断一下sa[i],sa[i-1]是不是在两个串里,是就更新最大值,否则Continue.刚学后缀数组的时候poj上C++,G++都没问题来着,而且当时那个模板还是错的-...今重写了下结果C++各种RE,G++倒是一次过。 #include #include
yanglei040
·
2013-10-05 20:00
hdu 4117 GRE Words (AC自动机+线段树)
字符串匹配算法,大概就是kmp,ac自动机,后缀数组,
后缀自动机
这么几种了。对于这题,我们很容易想到暴力dp,用kmp去匹配,总复杂度可以做到o(n^2+2*m)(n为字符
No__stop
·
2013-10-04 18:00
AC自动机
hdu1251 统计难题 trie
顺手水了一道trie,原来都是直接写静态的,这次用
后缀自动机
的存储方式写了一下,写成这种“伪动态”的存储方式即比静态的省空间,而且也没写动态的那么多麻烦。
yanglei040
·
2013-09-28 21:00
spoj 694,705 后缀数组,
后缀自动机
题意很简单,给一个字符串,求这个字符串有多少个不同的子串。这两题其实是一道,只不过694的范围是1000,705的范围是50000。写后缀数组的话,先求出sa,height这两个数组,因为每个后缀一定是一个独一无二的子串,所以可以直接把len先给ans,接下来就是找非后缀的子串,我的做法是直接循环sa,因为相邻的后缀已经是最相近的了,我要添加的就只是后缀i中从height[i]+1位开始
yanglei040
·
2013-09-27 20:00
后缀自动机
后缀自动机
(FHQ+Neroysq补完)首先CTSC只有Silver(注意不是Sliver.....被gyz吐槽了......捂),Day2第一题由于一直以来对01串很敏感,所以马上短路,认为是个神级DP
pi9nc
·
2013-09-23 20:00
后缀自动机
的自我消化
看了http://hi.baidu.com/myidea/item/142c5cd45901a51820e25039大神的blog,再更具自己的理解,借用大神的图,梳理一下自己对
后缀自动机
的建树过程的理解
SprintfWater
·
2013-09-21 21:00
poj 3415Common Substrings (
后缀自动机
)
poj3415CommonSubstrings(
后缀自动机
)题意:给出两个串,问这两个串的所有的子串中(重复出现的,只要是位置不同就算两个子串),长度大于等于k的公共子串有多少个。
No__stop
·
2013-09-19 14:00
后缀自动机
spoj 7258 Lexicographical Substring Search (
后缀自动机
)
spoj7258LexicographicalSubstringSearch(
后缀自动机
)题意:给出一个字符串,长度为90000。询问q次,每次回答一个k,求字典序第k小的子串。
No__stop
·
2013-09-18 14:00
后缀自动机
spoj 8222 Substrings (
后缀自动机
)
spoj8222Substrings题意:给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值。求F(1)..F(Length(S)) 解题思路:我们构造S的SAM,那么对于一个节点s,它的长度范围是[Min(s),Max(s)],同时他的出现次数是|Right(s)|。那么我们用|Right(s)|去更新F(Max(s))的值。那么现在的问题是如何快速求|right(s)|了
No__stop
·
2013-09-17 19:00
后缀自动机
hdu 4436 str2int (
后缀自动机
)
hdu4436str2int(
后缀自动机
)题意:给出n个数字,数字很长,用字符串读入,长度总和为10^5。求这n个字符串的所有子串(不重复)的和取模2012。解题思路:
后缀自动机
。。
No__stop
·
2013-09-16 20:00
后缀自动机
[置顶] spoj 1812 lcsII (
后缀自动机
)
spoj1812lcsII(
后缀自动机
)题意:求多个串的lcs,最多10个串,每个串最长10w解题思路:
后缀自动机
。先建好第一个串的sam,然后后面的串拿上去跑(这个过程同前一题)。
No__stop
·
2013-09-13 18:00
后缀自动机
spoj 1811 Longest Common Substring (
后缀自动机
)
spoj1811LongestCommonSubstring(
后缀自动机
)题意:lcs。。求两个字符串的最长公共连续子串解题思路:
后缀自动机
解法。
No__stop
·
2013-09-12 15:00
后缀自动机
后缀自动机
合集 II
补充在SAM中,state_Ai->nxt[w]==stateB(w:const)stateB->fa->stepstep(state_Ai->nxt[w]==stateB)利用拓扑排序,可构建所有子串在原串中出现的次数hdu3518BoringcountingSAM中的每个状态点都表示为从root出发走到该点所构成的子串,若其作为其他状态的父节点,则说明该子串被其他子串共享。求出现两次以上且不重
solotzg
·
2013-09-11 07:00
hdu 4622 Reincarnation (
后缀自动机
)
hdu4622Reincarnation(
后缀自动机
)题意:给出一个字符串,最长2000,q个询问,每次询问[l,r]区间内有多少个不同的字串。
No__stop
·
2013-09-10 19:00
后缀自动机
后缀自动机
合集 I
简介有关
后缀自动机
的理论和证明各路大神的博客多如牛毛,就不细说。
solotzg
·
2013-09-09 00:00
Longest Common Substring (LCS,两个字符串的最长公共子串,
后缀自动机
SAM)
1811. Longest Common Substring Problem code: LCS A string is finite sequence of characters over a non-empty finite set Σ. In this problem, Σ is the set of lowercase letters. Substring,
·
2013-09-09 00:00
substring
后缀自动机
)
uva719-GlassBeads(
后缀自动机
)分类:
后缀自动机
2013-09-0820:06 69人阅读 评论(0) 收藏 举报
后缀自动机
uva719-GlassBeads(
后缀自动机
)题意:求循环同构的最小表示的起点
pi9nc
·
2013-09-08 21:00
后缀自动机
uva 719 - Glass Beads(
后缀自动机
)
uva719-GlassBeads(
后缀自动机
)题意:求循环同构的最小表示的起点。解题思路:这题用
后缀自动机
来解,牛刀杀鸡啊,我只是写写模板。。
No__stop
·
2013-09-08 20:00
后缀自动机
hdu 4622 Reincarnation(字符串Hash+线段树)
可以用
后缀自动机
做,也可以先把字符串Hash成一个个整数,转化成求一个区间内不同的整数个数。用Trie树Hash超内存了。。
shiqi_614
·
2013-09-01 19:00
BZOJ2806(
后缀自动机
+DP)
题目:http://61.187.179.132/JudgeOnline/problem.php?id=2806 题意:给定一个由M个01串组成的字典。依据这个字典和一个阀值L,可以断言一个01串是否"熟悉",其定义是:把一个串划分成若干段,如果某个段的长度不小于L,且是字典中的某个串的连续子串,则这个段可识别;如果对于给出的串,存在一个划分,使得可识别的长度不小于总长度的90%,则这串是"熟悉"
ACdreamers
·
2013-09-01 18:57
字符串
BZOJ2806(
后缀自动机
+DP)
题目:http://61.187.179.132/JudgeOnline/problem.php?id=2806 题意:给定一个由M个01串组成的字典。依据这个字典和一个阀值L,可以断言一个01串是否"熟悉",其定义是:把一个串划分成若干段,如果某个段的长度不小于L,且是字典中的某个串的连续子串,则这个段可识别;如果对于给出的串,存在一个划分,使得可识别的长度不小于总长度的90%,则这串是"熟悉"
ACdreamers
·
2013-09-01 18:00
SPOJ7258(
后缀自动机
--第k大的子串)
题目:http://www.spoj.com/problems/SUBLEX/ 题意:给一个字符串,然后给Q个询问,每个询问输入一个数K,输出子串中字典序为K的字符串。#include#include#include#includeusingnamespacestd;constintN=250005;structState{State*pre,*go[26];intstep,v;voidclear
ACdreamers
·
2013-09-01 16:25
字符串
SPOJ7258(
后缀自动机
--第k大的子串)
题目:http://www.spoj.com/problems/SUBLEX/ 题意:给一个字符串,然后给Q个询问,每个询问输入一个数K,输出子串中字典序为K的字符串。#include #include #include #include usingnamespacestd; constintN=250005; structState { State*pre,*go[26]
ACdreamers
·
2013-09-01 16:00
SPOJ8222(
后缀自动机
--出现次数最多的子串)
题目:http://www.spoj.com/problems/NSUBSTR/ 题意:给一个字符串S,令F(x)表示S的所有长度为x的子串中,出现次数的最大值。求F(1)..F(Length(S)) #include #include #include #include usingnamespacestd; constintN=250005; structState {
ACdreamers
·
2013-09-01 14:00
HDU4416(
后缀自动机
)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=4416 题目大意:给一个字符串S和一系列字符串T1~Tn,问在S中有多少个不同子串满足它不是T1~Tn中任意一个字符串的子串。#include #include #include #include usingnamespacestd; typedeflonglongLL; constintN
ACdreamers
·
2013-08-31 21:00
SPOJ1812(
后缀自动机
求n个串的最长公共子串)
题目:http://www.spoj.com/problems/LCS2/ 题意:给定n个串,求它们的最长公共子串。 思路就是:先将一个串建SAM,然后用后面的串去匹配,对于每一个串,保存最大值,对于不同的串,更新最小值。SAM结点多两个值,ml表示多个串的最小值,nl表示当前串匹配的最大值。 #include #include #include #include usingnames
ACdreamers
·
2013-08-31 20:00
SPOJ1811最长公共子串问题(
后缀自动机
)
分析:其实本题用后缀数组的DC3已经能很好的解决,这里我们来说说利用
后缀自动机
如何实现。
ACdreamers
·
2013-08-31 16:00
上一页
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
其他