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-后缀数组
poj 3693 Maximum repetition substring
后缀数组
+RMQ
题目链接:http://poj.org/problem?id=3693题意:输出一个只包含小写字母的字符串中的一个子串,这个字串要满足如下两个条件:1.这个子串是一个带循环节的子串,且循环节的个数要最大;2.在所有满足第一个条件的子串中输出字典序靠前的。题解:1.枚举循环节的长度,找到循环次数最大的,所以符合题意的循环结长度。那么假设循环节至少有两个,对于r[0],r[l],r[2*l],r[3*
csuhoward
·
2014-09-12 22:00
后缀数组
RMQ
【SPOJ】【P1811】【LCS】【题解】【SAM】
传送门:http://www.spoj.com/problems/LCS/Q:
后缀数组
背不过怎么办?
u012732945
·
2014-09-10 18:00
spoj
字符串专题算法
字符串:KMPEentend-Kmp自动机trie图trie树后缀树
后缀数组
2009-09-2500:00:40| 分类: 算法与acm|举报|字号 订阅涉及到字符串的问题,无外乎这样一些算法和数据结构
Enjoying_Science
·
2014-09-09 22:00
数据结构
算法
字符串
ACM
poj 3693 Maximum repetition substring(
后缀数组
)
解题思路:对字符串构建
后缀数组
,然后枚举循环长度,分区间确定。
u011328934
·
2014-09-05 22:00
uva 10829 - L-Gap Substrings(
后缀数组
)
解题思路;对字符串的正序和逆序构建
后缀数组
,然后枚举U的长度l,每次以长度l分区间,在l和l+d+g所在的两个区间上确定U的最大长度。
u011328934
·
2014-09-05 22:00
uva 11855 - Buzzwords(
后缀数组
)
解题思路:
后缀数组
,处理处
后缀数组
,然后枚举子串长度,按照长度分段即可。
u011328934
·
2014-09-04 22:00
uva 10526 - Intellectual Property(
后缀数组
)
题目链接:uva10526-IntellectualProperty题目大意:给定两个文本,问说下面一个文本中在哪些位置上抄袭了上面个一个文本的,输出n个抄袭位置(不足n个情况全部输出),按照长度优先输出,长度相同的输出位置靠前的。注意:空格,回车都算一个字符;一段字符只能是抄袭上面的一部分,比如上:NSB*SB下:NSB答案:NSB。解题思路:将两个文本连接在一起,中间用没有出现的字符分割,然后
u011328934
·
2014-09-04 22:00
BNUOJ 34990 北京邀请赛最后一题
思路:这题看了题解说是
后缀数组
做的,然后自己就偿试了一下,唉……没想到不管是不管是倍增算法的后缀还是DC3算法的后缀都T了,实在无计可施了,可能只有哗然可以过了。不过比赛那天题解说是没有卡后缀的。
u011466175
·
2014-09-03 22:00
倒排文件索引(Inverted File Index)的建立
建立索引目前主流的索引技术有三种:倒排文件、
后缀数组
和签名。
后缀数组
的方法虽然快,但是其维护困难,代价相当高,不适合做引擎的索引。签名是一种很好的索引方式,但倒排文件的速度和性能已经超过了签名。
u011867581
·
2014-09-03 16:00
索引
搜索引擎
uva 12338 - Anti-Rhyme Pairs(
后缀数组
+RMQ)
解题思路:本来应该将每个字符串连接起来做
后缀数组
,但其实可以直接把一个字符串看成是一个字符,然后排序了就对应是SA数组,然后处理height即可。
u011328934
·
2014-09-02 22:00
uva 261 - The Window Property(
后缀数组
)
解题思路:
后缀数组
,处理出height数组,对于每个k,遍历height数组,碰到小于k的则分段,将整个height分成若干段,即为有多少种长度为k的不同前缀,需要注意的是要跳过前缀长
u011328934
·
2014-09-02 22:00
uva 12206 - Stammering Aliens(哈希)
解题思路:哈希算法,将每个
后缀数组
建立一个哈希值,每次二分长度判断,每次判断时将哈希值排序,计数即可。
u011328934
·
2014-09-01 21:00
uva 11107 - Life Forms(
后缀数组
)
解题思路:
后缀数组
,处理除
后缀数组
后,二分长度,每次遍历height数组,当长度不足时就分段,如果存在一段中包含n/2个起点,则为可行长度。
u011328934
·
2014-09-01 21:00
Uva 12361 File Retrieval
后缀数组
+并查集
题意:有F个单词,1h[v]的子串所在的单词形成的并查集中,得到的并查集中单词一定有长度>=h[v]公共字串,这样的并查集实际就是一个合法的单词集合,可以利用二进制表示,每次得到新的集合则将二进制表示加入到统计集合的set中,最后结果就是set的大小。AC代码其实是比赛时写的,当时多个单词部分不是上面这种写法,不过类似。 1#include 2#defineinfreopen("solve_in
·
2014-08-28 00:00
File
求字符串最大的重复字串
1,定义一个
后缀数组
2,对
后缀数组
排序3,找出最大的重复字串:与其重复的最大字串,一定是相邻的。
superKKOne
·
2014-08-26 16:18
java
算法
poj 2774 Long Long Message,
后缀数组
,求最长公共子串 hdu1403
题意:给出两个字符串,求最长公共子串的长度。题解:首先将两个字符串连在一起,并在中间加一个特殊字符(字串中不存在的)分割,然后两个串的最长公共字串就变成了所有后缀的最长公共前缀。这时就要用到height数组,因为任意两个后缀的公共前缀必定是某些height值中的最小值,而这个值如果最大则一定是height中的最大值。在此题中还要注意height最大一定要在两个值所代表的后缀分属不同的字符串地前提下
yew1eb
·
2014-08-24 09:00
UVA 10829 - L-Gap Substrings(
后缀数组
)
UVA10829-L-GapSubstrings题目链接题意:一个字符串如果形如UGU,的形式,G的长度为L,那么称这个字符串为L串,给定一个字符串,问这个字符串子串为g串的个数思路:做这题前先做了POJ3693,有一个思想就是枚举长度分段,这样的话对于一个U长度为l的而言,只要在当前位置和当前位置之后(l+g)的位置分别向前向后找lcp,两个lcp加起来的长度减去l就是可以可以的种数,累加起来就
u011217342
·
2014-08-23 19:00
POJ 3693 Maximum repetition substring(
后缀数组
神题)
POJ3693Maximumrepetitionsubstring题目链接题意:给定一个字符串,求出其子串中,重复次数最多的串,如果有相同的,输出字典序最小的思路:枚举长度l,把字符串按l分段,这样对于长度为l的字符串,肯定会包含一个分段位置,这样一来就可以在每个分段位置,往后做一次lcp,求出最大匹配长度,然后如果匹配长度有剩余,看剩余多少,就往前多少位置再做一次lcp,如果匹配出来长度更长,匹
u011217342
·
2014-08-23 18:00
UVA 10526 - Intellectual Property (
后缀数组
)
UVA10526-IntellectualProperty题目链接题意:给定两个问题,要求找出第二个文本抄袭第一个文本的所有位置和长度,输出前k个,按长度从大到小先排,长度一样的按位置从小到大思路:
后缀数组
u011217342
·
2014-08-23 10:00
UVA 11855 - Buzzwords(
后缀数组
)
UVA11855-Buzzwords题目链接题意:给定一个文本,求出长度为1,2,3,4,5....的字符串最大出现次数,一直找到出现次数不大于1为止思路:
后缀数组
,把空格去掉得到一个字符串,构造height
u011217342
·
2014-08-22 15:00
最长重复子串(可重叠)
最快的方法是使用
后缀数组
,如果子串R在L中重复出现,则R至少是L的两个
后缀数组
的前缀,
后缀数组
最难的就是如何构建
后缀数组
,网上有很多博客讨
fangjian1204
·
2014-08-20 14:46
算法
最长重复子串(可重叠)
最快的方法是使用
后缀数组
,如果子串R在L中重复出现,则R至少是L的两个
后缀数组
的前缀,
后缀数组
最难的就是如何构建
后缀数组
,网上有很多博客讨
fangjian1204
·
2014-08-20 14:00
算法
后缀数组
最长重复子串
leetcode 之 Longest Common Prefix
LongestCommonPrefix Writeafunctiontofindthelongestcommonprefixstringamongstanarrayofstrings.最长公共前缀最快的方法应该是使用
后缀数组
fangjian1204
·
2014-08-20 14:00
LeetCode
common
prefix
UVA 12338 - Anti-Rhyme Pairs(
后缀数组
+RMQ)
UVA12338-Anti-RhymePairs题目链接题意:给定一些字符串,每次询问求出两个字符串的最长公共前缀的长度思路:把字符串排序,就能求出height和rank数组,然后利用RMQ查询即可代码:#include #include #include #include #include usingnamespacestd; constintN=100005; typedefpairpii
u011217342
·
2014-08-20 01:00
hdu 3518 Boring counting(
后缀数组
)
Boringcounting TimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)ProblemDescription035nowfacedatoughproblem,hisenglishteachergiveshimastring,
LYHVOYAGE
·
2014-08-19 10:00
UVA 12206 - Stammering Aliens(
后缀数组
)
UVA12206-StammeringAliens题目链接题意:给定一个序列,求出出现次数大于m,长度最长的子串的最大下标思路:
后缀数组
,搞出height数组后,利用二分去查找即可这题之前还写过hash
u011217342
·
2014-08-18 22:00
UVA 11107 - Life Forms(
后缀数组
)
LifeForms题目链接题意:给定一些字符串,求最长并且在所有字符串的连续子串中出现超过一半次数的字符串,输出这些字符串思路:把这些字符串接起来,拼接部分用一个不会出现的不重复的字符,然后求这个长串的
后缀数组
u011217342
·
2014-08-18 16:00
POJ 1226
后缀数组
:求出现或反转后出现在每个字符串中的最长子串
思路:这题是论文里的最后一道练习题了,不过最后一题竟然挺水的。因为求的是未反转或者反转后,最长公共子串。刚开始还真不知道怎么构建连接成一个字符串,因为需要有反转嘛!但是其实挺简单的,把未反转的和反转后的字符串都连起来,中间用未出现过的字符隔开就行了!然后未反转的和反转的在同一组。二分枚举最长的公共前缀长度,然后统计看看这个最长的长度在不在所有的组里,如果在就符合……#include #includ
u011466175
·
2014-08-15 16:00
SPOJ 220
后缀数组
:求每个字符串至少出现两次且不重叠的最长子串
思路:也是n个串连接成一个串,中间用没出现过的字符隔开,然后求
后缀数组
。
u011466175
·
2014-08-15 15:00
POJ 3294
后缀数组
:求不小于k个字符串中的最长子串
思路:先把所有的串连接成一个串,串写串之前用没出现过的字符隔开,然后求后缀;对height数组分组二分求得最长的公共前缀,公共前缀所在的串一定要是不同的,不然就不是所有串的公共前缀了,然后记下下标和长度即可。刚开始理解错题意,然后不知道怎么写,然后看别人题解也不知道怎么意思,后面看了好久才知道题目意思理解错了。时间四千多ms,别人才一百多ms,不知道别人怎么做的……#include #includ
u011466175
·
2014-08-15 13:00
POJ 2774
后缀数组
:求最长公共子串
思路:其实很简单,就是两个字符串连接起来,中间用个特殊字符隔开,然后用
后缀数组
求最长公共前缀,然后不同在两个串中,并且最长的就是最长公共子串了。
u011466175
·
2014-08-14 21:00
URAL 1297
后缀数组
:求最长回文子串
然后才知道自己写的
后缀数组
对这个回文子串有bug,然后就不知道怎么改了。
u011466175
·
2014-08-13 22:00
POJ 2406
后缀数组
:求连续重复子串
解法一:DC3求后缀因为我用的是红书的后缀模板,所以是倍增求的,所以这个DC3是用这个博客的模板:http://www.cnblogs.com/GO-NO-1/p/3480212.html这个也是勉强过的,时间为:2829ms了,写得不机智就会超了。#include #include #defineN2000005 #defineF(x)((x)/3+((x)%3==1?0:tb)) #defin
u011466175
·
2014-08-13 20:00
SPOJ 694、705
后缀数组
:求不同子串
所以这题当然就是用
后缀数组
做的啦!算法分析:每个子串一定是某个后缀的前缀,那么原问题等价于求所有后缀之间的不相同的前缀的个数。如果所有的后缀按照suffix(sa[1]),suffix(sa[2])
u011466175
·
2014-08-13 14:00
【后缀自动机】 HDOJ 4436 str2int
一眼
后缀数组
。但是本弱不会写。本弱参考cxlove大神的。。。http://blog.csdn.net/ACM_cxlove?
blankcqk
·
2014-08-13 13:00
HDU
POJ 3261
后缀数组
:求可重叠的最长重复子串
后缀思想及解法的来源:http://wenku.baidu.com/link?url=kG_SolxPKmyHjwKCvnQ5bxVMUAA3FU-3HFSBASW_jLSgku9u9r9PKHKGqf4CF9RTxG4gfkYg6lMCdGZu2eVMCvidEtcObiAXLP_9-3PhKp3思路:这题的做法和POJ1743差不多,也是先二分答案,然后将后缀分成若干组。不同的是,这里要判断的
u011466175
·
2014-08-13 12:00
POJ 1743
后缀数组
:求最长不重叠子串
数据:这题弄了好久,WA了数十发,现在还有个例子没过,可却A了,POJ的数组也太弱了。101111111111这组数据如果没有那个n-1 #include #include #include #include #include #include #include #include #definemem(a,b)memset(a,b,sizeof(a)) #definelsoni=0;i--)b[-
u011466175
·
2014-08-13 10:00
poj 2299 树状数组求逆序数+离散化
id=2299最初做离散化的时候没太确定但是写完发现对的---因为
后缀数组
学的时候,,这种思维习惯了吧1、初始化as[i]=i;对as数组按照num[]的大小间接排序2、bs[as[i]]=i;现在bs
u011026968
·
2014-08-13 01:00
后缀数组
后缀数组
:
后缀数组
SA是一个一维数组,它保存1..n的某个排列SA[1],SA[2],……,SA[n],并且保证Suffix(SA[i])=0;i--)b[--count[str[a[i]]]]=a[i
u011466175
·
2014-08-12 20:00
ACM-
大数N!的位数公式
N!求解位数下面介绍两种方法直接求阶乘结果的位数:方法一 可以将n!表示成10的次幂,即n!=10^M(10的M次方)则不小于M的最小整数就是n!的位数,对该式两边取对数,有 M=log10^n!即: M=log10^1+log10^2+log10^3...+log10^n 循环求和,就能算得M值,该M是n!的精确位数代码:#include"iostr
Enjoying_Science
·
2014-08-10 13:00
算法
优化
ACM
大数高精度
poj 2774 最长公共子串--字符串hash或者
后缀数组
或者后缀自动机
id=2774想用
后缀数组
的看这里:http://blog.csdn.net/u011026968/article/details/22801015本文主要讲下怎么hash去找开始的时候写的是O(n^2logn
u011026968
·
2014-08-10 00:00
【
后缀数组
】 HDOJ 4552 怪盗基德的挑战书
题目中让我们求前缀出现的所有次数和。。。可以转化成rank【0】的后缀和其他所有后缀长度之和。。。#include #include #include #include #include #include #include #include #include #include #include #include #include #definemaxn100005 #definemaxm40000
blankcqk
·
2014-08-08 18:00
HDU
[置顶]
后缀数组
·小结
智商太低,花了半个多月总算把
后缀数组
那篇论文的题目刷完了写个总结方便自己以后再深入学习,也希望能够帮助正在学习
后缀数组
的童鞋首先ORZ 《
后缀数组
——处理字符串的有力工具》-罗穗骞本文也是依照着这篇论文
fjy4328286
·
2014-08-08 14:00
字符串
后缀数组
ural 1297 最长回文子串
后缀数组
http://acm.timus.ru/problem.aspx?space=1&num=12971297.PalindromeTimelimit:1.0secondMemorylimit:64MBThe“U.S.Robots”HQhasjustreceivedaratheralarminganonymousletter.Itstatesthattheagentfromthecompeting«R
u013573047
·
2014-08-05 09:00
后缀数组
模板
usingnamespacestd; constintmaxn=211111; /****************************************************************** **
后缀数组
u013573047
·
2014-08-04 20:00
SPOJ 694 求一个字符串有多少子串
后缀数组
http://www.spoj.com/problems/DISUBSTR/Givenastring,weneedtofindthetotalnumberofitsdistinctsubstrings.InputT-numberoftestcases.T #include #include #include usingnamespacestd; constintmaxn=211111; /****
u013573047
·
2014-08-04 20:00
poj 2774 求两字符串的最长公共子串
后缀数组
http://poj.org/problem?id=2774Language:DefaultLongLongMessageTimeLimit: 4000MS MemoryLimit: 131072KTotalSubmissions: 20556 Accepted: 8475CaseTimeLimit: 1000MSDescriptionThelittlecatismajoringinphysics
u013573047
·
2014-08-04 16:00
URAL1297 最大回文字串
URAL1297求最长回文子串,本来这道题打算用
后缀数组
写的,没想到看到了这个,感觉以后用的上.于是就把python和伪代码翻成c++了..思路不懂的化戳这里这里还有英文原版#include #include
Hivoodoo
·
2014-08-03 16:00
ACM
回文
POJ2774Long Long Message(
后缀数组
模板)
#include #include #include usingnamespacestd; constintmaxn=2*100000+10;; structSuffixArray{ intr[maxn]; intsa[maxn],rank[maxn],height[maxn]; intt[maxn],t2[maxn],c[maxn],n; intm;//模板长度 voidinit(char*
u013790563
·
2014-08-03 14:00
hdu 4898 LCP+贪心思维
利用这种思想,首先我们可以预处理所有子串的LCP(
后缀数组
+记录O(2nlog(2n))+O(n*n),dp(O(4*n*n)))然后将这些子串利用LCP按照字典序排序,开始二分答案。
t1019256391
·
2014-08-02 13:00
上一页
31
32
33
34
35
36
37
38
下一页
按字母分类:
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
其他