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-后缀数组
[Noi2015]品酒大会|
后缀数组
|并查集
后缀数组
+并查集先求出height数组 然后排序并查集维护sizemaxmin从大到小枚举height 若当前以x开头的后缀和以y开头的后缀的lcp为kp为x的并查集的根,q为y的并查集的根则k相似的的个数加上
ws_yzy
·
2016-01-11 20:00
后缀数组
并查集
BZOJ 3172: [Tjoi2013]单词|
后缀数组
这个ac自动机做法貌似很显然然而我用的
后缀数组
(专业制造麻烦……其实就是为了练
后缀数组
)这题二分答案会有很多坑爹的地方原因就是这height数组存的是suffix(sa[i])和suffix(sa[i-
ws_yzy
·
2016-01-11 09:00
后缀数组
二分
3238: [Ahoi2013]差异
后缀数组
+分治+乘法原理
首先
后缀数组
似乎就不是正确的姿势?然后写了
后缀数组
不写单调栈好像更不是正确的姿势?反正我是暴力水过了。。st表预处理出最小值点,每次寻找最小值点然后乘法原理计算两边的乘积。再对左右区间分别处理。
Phenix_2015
·
2016-01-11 08:00
Poj 1743Musical Theme|
后缀数组
|二分答案
首先差分一下话说为什么我花了好久才弄懂题意,然后才知道为什么差分……然后就是二分答案,给height分组judge1A赞(调了一早晨的sb错误)#include #include #include #include #include #include #include #include #include #include #defineT511111 usingnamespacestd; ints
ws_yzy
·
2016-01-11 07:00
后缀数组
二分答案
BZOJ4310 : 跳蚤
首先求出
后缀数组
,得到本质不同的子串的个数。然后二分答案,每次先通过
后缀数组
求出第$mid$小的子串,然后贪心进行检验。检验的时候,从后往前贪心,每次加入一个后缀,如果不能加了,那就划为一段。
Claris
·
2016-01-10 20:00
BZOJ 3238: [Ahoi2013]差异|
后缀数组
|乘法原理
后缀数组
貌似不是这个题正确的姿势不过也可以做自己yy的做法用set水过了不过看起来并不是很慢原题中的式子等价于所有后缀的长度之和*[length(s)-1] 减去 任意两个后缀的lcp长度任意两个后缀的
ws_yzy
·
2016-01-10 20:00
后缀数组
乘法原理
Poj 3693 Maximum repetition substring|
后缀数组
|st表
这一定是我做的最恶心的一道
后缀数组
的题简直恶心哭了具体做法可以参见罗穗骞的论文说一下字典序最小怎么找:找出所有重复最多的子串长度枚举sa数组最先找到的那个满足条件的就是字典序最小的ps:1,st表查询的时候左边的
ws_yzy
·
2016-01-10 16:00
后缀数组
st表
3172: [Tjoi2013]单词
后缀数组
写了一发
后缀数组
,二分究竟哪里写错了QAQ,无奈改成了暴力过了。
后缀数组
的作法比较显然,比起fail树来好想多了。。(我太弱啦)。
Phenix_2015
·
2016-01-10 15:00
Poj 2774 Long Long Message|
后缀数组
后缀数组
裸题两串合并中间加一个‘$'然后求height数组然后求排名相邻但原来不在同一个字符串中的两个后缀的height值的最大值#include #include #include #include
ws_yzy
·
2016-01-10 10:00
后缀数组
tyvj 1860
后缀数组
模板题超时!!卡常神题!!!ps:输出优化要不40w输出会tle#include #include #include #include #include #include #include #include #include #include #defineT222222 usingnamespacestd; chars[T]; intt1[T],t2[T],cc[T],sa[T],rank[T]
ws_yzy
·
2016-01-10 08:00
后缀数组
2251: [2010Beijing Wc]外星联络
后缀数组
后缀数组
求出来以暴力统计就好了==#include usingnamespacestd; intlen; intcc[3005],t1[3005],t2[3005],sa[3005],rank[3005
Phenix_2015
·
2016-01-09 20:00
[置顶] [挖坑]未解决的题
写的
后缀数组
Phenix_2015
·
2016-01-08 21:00
BZOJ4340 : BJOI2015 隐身术
那么首先用
后缀数组
+ST表求出两个后缀的lcp,$x$和$y$都可以向右跳那么多,且不产生任何代价。如果此时匹配到了底,那么可以得到在一段区间$[L,R]$内,所有前缀都是合法的。
Claris
·
2016-01-06 20:00
【bzoj4278】 [ONTAK2015]Tasowanie
后缀数组
并起来,加个大数,求个
后缀数组
比较排名就可以了。为什么这个题行末还要有空格呀?明明样例没有的。
u012288458
·
2016-01-03 21:00
【后缀自动机】SPOJLCS SPOJNSUBSTR SPOJLCS2 HDU4416
据说后缀自动机可以替代
后缀数组
和后缀树……后缀自动机,用线性的节点数来保存所有的后缀。
cqbztsy
·
2015-12-29 23:00
后缀自动机
BZOJ2754 SCOI2012day1T2喵星球上的点名(
后缀数组
)
后缀数组
的板有点问题_(:з」∠)_1#include 2#include 3#include 4#include 5#include 6#include 7#include 8#defineMaxN30010
Lukaluka
·
2015-12-29 19:00
poj 2774 Long Long Message
后缀数组
基础题
TimeLimit: 4000MS MemoryLimit: 131072KTotalSubmissions: 24756 Accepted: 10130CaseTimeLimit: 1000MSDescriptionThelittlecatismajoringinphysicsinthecapitalofByterland.Apieceofsadnewscomestohimthesedays:h
Atrp
·
2015-12-29 15:00
【
后缀数组
】[UVA10829]L-Gap substring
题目分析,这道题很显然要找两个相同的字串,也就是两个后缀公共前缀,很自然地可以想到,可以使用
后缀数组
。
wangyaninglm
·
2015-12-28 13:00
C++
后缀数组
uva
Uva12206 Stammering Aliens
后缀数组
&&Hash
Dr.EllieArrowayhasestablishedcontactwithanextraterrestrialcivilization.However,alleffortstodecodetheirmessageshavefailedsofarbecause,asluckwouldhaveit,theyhavestumbleduponaraceofstutteringaliens!Herte
Atrp
·
2015-12-28 11:00
hdu 3518 Boring counting
后缀数组
基础题
TimeLimit:2000/1000MS(Java/Others) MemoryLimit:65536/32768K(Java/Others)TotalSubmission(s):2549 AcceptedSubmission(s):1030ProblemDescription035nowfacedatoughproblem,hisenglishteachergiveshimastr
Atrp
·
2015-12-27 12:00
HDU3065 病毒侵袭持续中(AC自动机或
后缀数组
)
如果用
后缀数组
的话,我觉得可以O(NlogM)(N为串的总长度,M为模式串最长长度)来Build。
geng4512
·
2015-12-23 20:00
bzoj1031(
后缀数组
)
1031:[JSOI2007]字符加密CipherTimeLimit: 10Sec MemoryLimit: 162MBSubmit: 4697 Solved: 1923[Submit][Status][Discuss]Description喜欢钻研问题的JS同学,最近又迷上了对加密方法的思考。一天,他突然想出了一种他认为是终极的加密办法:把需要加密的信息排成一圈,显然,它们有很多种不同的读法
M_AXSSI
·
2015-12-20 10:00
最长回文子串的查找
时间复杂度为O(n)然后
后缀数组
的做法,在罗穗骞大神的论文里也写得很清楚了,即把原串反着放回到前一个的后面(中间用一个特殊符号分割)(同样的,用特殊符号处理成长度为奇数的串)。
geng4512
·
2015-12-19 14:00
后缀数组
模板
boolcmp(int*y,inta,intb,intl) { returny[a]==y[b]&&y[a+l]==y[b+l]; } voidpd(intn,intm) { inti,j,p,*x=prnk,*y=psa; for(i=0;i=0;--i)sa[--bucket[x[i]]]=i; for(j=1,p=1;p=j)y[p++]=sa[i]-j; for(i=0;i=0;--i)s
Quack_quack
·
2015-12-19 11:00
UVa 719 - Glass Beads 字符串算法的合集
本文将用三个算法来解决此题提示:(如果你是顺着INTERMEDIATE往下做的这个题有一个明显的思路)1.想办法使用
后缀数组
,因为题目要求的是一种字符串的循环表示形式(AKA字符串表示法),那么可以把字符串写两遍然后跑一跑
后缀数组
啊
Fuxey
·
2015-12-18 17:00
字符串
后缀数组
uva
最小表示法
后缀自动机
【poj3693】Maximum repetition substring(
后缀数组
+RMQ)
传说中的
后缀数组
神题,蒟蒻真的调了很久才对啊。
konjak魔芋
·
2015-12-15 16:00
后缀数组
模板
//Copyright(c)2015liuchenrui #include #include #include #include #include usingnamespacestd; inlinevoidsplay(int&v){ v=0;charc=0;intp=1; while(c'9'){if(c=='-')p=-1;c=getchar();} while(c>='0'&&c=1;i--)
lcrtest
·
2015-12-15 16:00
模板
【
后缀数组
】[POJ1743]Musical Theme 乐曲主旋律
题目:
后缀数组
模板题,做法参见罗穗骞论文。自认为代码写得比较好看。
wangyaninglm
·
2015-12-14 13:00
C++
字符串
poj
后缀数组
SA
关于
后缀数组
的倍增算法和height数组
自己看着大牛的论文学了一下
后缀数组
,看了好久好久,想了好久好久才懂了一点点皮毛TAT 然后就去刷传说中的
后缀数组
神题,poj3693是进化版的,需要那个相同情况下字典序最小,搞这个搞了超久的说
konjak魔芋
·
2015-12-12 10:00
【bzoj3238】[Ahoi2013]差异
后缀数组
+单调栈
首先求出height数组,原式很明显可以化成一堆长度的和-两两LCP的和,所以我们考虑每个height能充当多少个区间的最小值即可,那么这个问题可以用单调栈解决,从左和从右各维护一个单调递增的单调栈,求出点i向左和向右分别最多能延伸多长。注意:1.height数组的[i,i]是要计入区间数的,因为我们查询lcp(i,j)的时候查询的是height数组中rank[i]+1~rank[j]的最小值,所
u012288458
·
2015-12-06 19:00
SPOJ SUBST1 New Distinct Substrings
后缀数组
-子串个数
#include #include usingnamespacestd; constintmaxn=200000; intt1[maxn],t2[maxn],c[maxn]; boolcmp(int*r,inta,intb,intl) { returnr[a]==r[b]&&r[a+l]==r[b+l]; } voidda(intstr[],intsa[],intrank1[],intheight
xinag578
·
2015-12-04 22:00
SPOJ DISUBSTR Distinct Substrings
后缀数组
子串个数
#include #include #include #include usingnamespacestd; constintN=100005; intwa[N],wb[N],ws[N],wv[N]; intrk[N],height[N]; boolcmp(intr[],inta,intb,intl){ returnr[a]==r[b]&&r[a+l]==r[b+l]; } voidda(i
xinag578
·
2015-12-04 22:00
字符串学习计划
1.三个匹配算法:RK,自动机,KMP2.有关字符串的dp3.
后缀数组
和后缀树4.高度数组 5.最小表示法6.表达式处理7.MANACHER8.前后缀思想总结,有关算法
qq_20669971
·
2015-12-04 10:00
poj 3261 Milk Patterns 可重叠的k次最长重复子串
后缀数组
da算法
#include #include #include usingnamespacestd; constintmaxn=2000000; intt1[maxn],t2[maxn],c[maxn]; boolcmp(int*r,inta,intb,intl) { returnr[a]==r[b]&&r[a+l]==r[b+l]; } voidda(intstr[],intsa[],intrank
xinag578
·
2015-12-03 22:00
poj 1743 Musical Theme
后缀数组
da算法
#include #include #include usingnamespacestd; constintmaxn=200000; intt1[maxn],t2[maxn],c[maxn]; boolcmp(int*r,inta,intb,intl) { returnr[a]==r[b]&&r[a+l]==r[b+l]; } voidda(intstr[],intsa[],intrank1[]
xinag578
·
2015-12-03 20:00
hdu 1403 Longest Common Substring
后缀数组
da算法
/**suffixarray*倍增算法O(n*logn)*待排序数组长度为n,放在0~n-1中,在最后面补一个0*da(str,n+1,sa,rank,height,,);//注意是n+1;*例如:*n=8;*num[]={1,1,2,1,1,1,1,2,$};注意num最后一位为0,其他大于0*rank[]={4,6,8,1,2,3,5,7,0};rank[0~n-1]为有效值,rank[n]必
xinag578
·
2015-12-03 18:00
算法设计 - LCS 最长公共子序列&&最长公共子串 &&LIS 最长递增子序列
最长公共子串用动态规划可实现O(n^2)的时间复杂度,O(n^2)的空间复杂度;还可以进一步优化,用
后缀数组
的方法优化成线性时间O(nlog
sushauai
·
2015-11-30 20:00
计数排序和基数排序
计数排序是基数排序的基础,最为关键的是:基数排序算法是
后缀数组
的关键(当然
后缀数组
也可以用快排),
后缀数组
是用于处理字符串的一种非常优秀的数据结构,可以高效的处理很多字符串问题,比如重复子串,回文子串等等
uestclr
·
2015-11-30 09:00
排序算法
基数排序
计数排序
字符串比较
字典序
HDU 5558
后缀数组
+二分
题意有一些绕,但其实就是对于不断变化的i,求以j(0=j 2#include 3#include 4#include 5#include 6#include 7#include 8#include 9#include 10#include 11#include 12#include 13#include 14#include 15usingnamespacestd;
夢中花落
·
2015-11-24 23:00
BZOJ4319: cerc2008 Suffix reconstruction Suffix Array 的理解
如果这一题自己做的话是可以加深对
后缀数组
的理解的。。。。那我就直接厚脸皮的套别人结论了。。。考虑sa的计算方式,然后贪心。 如果当前sa的下一位的rank大于下个sa的
liutian429073576
·
2015-11-22 09:00
array
Suffix
求串的第一个最长重复子串的下标和长度
1.读取串2.求
后缀数组
3.字典序排序所有后缀4.求相邻后缀最长子串5.比较本次结果与上次结果,取最大*/#include#include#include#include#include#includeusingnamespacestd
J_Anson
·
2015-11-17 16:00
数据结构
算法
后缀数组
poj 3415 Common Substrings
id=3415题目分类:
后缀数组
题意:给出两个串和一个数字k,求两个串的公共字串大于等于k的数目代码://#include #include #include #include #include
唯爱与代码,不可辜负
·
2015-11-15 23:00
poj 3450 Corporate Identity
id=3450题目分类:
后缀数组
题意:求n个串的最长公共字串(输出字串)//#include #include #include #include #include usingnamespacestd
唯爱与代码,不可辜负
·
2015-11-15 23:00
poj 2774 Long Long Message
id=2774题目分类:
后缀数组
题意:两个串,求两个串的最长公共字串的长度代码://#include #include #include #include #include usingnamespacestd
唯爱与代码,不可辜负
·
2015-11-15 23:00
ACM-
超级楼梯
ProblemDescription有一楼梯共M级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第M级,共有多少种走法? Input输入数据首先包含一个整数N,表示测试实例的个数,然后是N行数据,每行包含一个整数M(1>n; intM; ans[1]=1; ans[2]=1; for(inti=3;i>M; cout<
gzj_1101
·
2015-11-15 09:00
算法
递归
hdu5558 Alice's Classified Message
后缀数组
首先计算出sa,rank,height数组,易知,不妨设x,y(rank[x] #include #include usingnamespacestd; //
后缀数组
模板 /* 样例使用: 若原字符串为
u010005180
·
2015-11-14 17:00
bzoj 1301
后缀数组
比较裸的
后缀数组
。
·
2015-11-13 21:49
后缀数组
bzoj 3172
后缀数组
|AC自动机
后缀数组
或者AC自动机都可以,模板题。
·
2015-11-13 20:41
AC自动机
poj 2774 Long Long Message,
后缀数组
,求最长公共子串 hdu1403
题意:给出两个字符串,求最长公共子串的长度。 题解:首先将两个字符串连在一起,并在中间加一个特殊字符(字串中不存在的)切割,然后两个串的最长公共字串就变成了全部后缀的最长公共前缀。这时就要用到height数组,由于随意两个后缀的公共前缀必然是某些height值中的最小值,而这个值假设最大则一定是height中的最大值。在此题中还要注意height最大一定要在两个值所代表的后缀分属不同的字符
·
2015-11-13 20:06
message
hdu 4080 Stammering Aliens -
后缀数组
/* 其实这题才是第一次做 但是一直不过,也不知道怎么回事儿 就去调了那个简单题做 现在才发现少了main里面的if 还有ok2 是我之前写的,但是少了个{} 题意是,在所给的字符串中找一个子串,最少出现m次,求那个最长的串,并输出最后一次的开始位置 按长度二分,判断是否符合条件即可 */ #include<stdio.h> #
·
2015-11-13 19:20
后缀数组
上一页
17
18
19
20
21
22
23
24
下一页
按字母分类:
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
其他