后缀数组
文章平均质量分 78
你的微笑依然那样灿烂
这个作者很懒,什么都没留下…
展开
-
POJ 3261 Milk Patterns 可重叠的k次最长重复子串
后缀数组 的入门题。先计算好SA和height数组。然后二分答案。二分的时候,对height进行分组,看存不存在一组的大小大于等于k//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All rights reserved.//#incl原创 2017-02-07 17:20:58 · 400 阅读 · 0 评论 -
POJ 3294 后缀数组+二分
你可能想知道为什么大多数外星生命形式类似于人类,不同的表面特征,如身高,颜色,皱纹,耳朵,眉毛等。几个人没有人类的相似性;这些通常具有几何或无定形形状,如立方体,油滑层或尘云。答案是在星际迷航 - 下一代的第146集,题为追逐。事实证明,在绝大多数象限的生命形式最终与一个大片段的共同的DNA。给定被表示为字母串的几个生命形式的DNA序列,您将找到由其中一半以上共享的最长子字符串。输入原创 2017-03-06 19:23:53 · 289 阅读 · 0 评论 -
后缀数组——处理字符串的有力工具
http://wenku.baidu.com/link?url=suTtOeeWF8n9eCvuZIFIHj6CSnAwEessZcHUlDD-YXZIbHE9R7VFOHFcNXnKPXDiDRhPewnNckvGZ5tPWgp4RvsIv3jrzF3BFwmVIWHaOES后缀数组——处理字符串的有力工具作者:罗穗骞2009年1月 【摘要】转载 2017-02-14 19:20:03 · 614 阅读 · 0 评论 -
hdu 5769后缀数组 求含有某个字母的某个字符串的不同子串的个数
p.p1 {margin: 0.0px 0.0px 0.0px 0.0px; font: 15.0px Times; color: #555555; -webkit-text-stroke: #555555}span.s1 {font-kerning: none}后缀数组可以处理重复子串所以我们直接用它的sa和height数组就行了,因为要满足有给定的字符,所以我们将sa[i]代表的串里有这个字原创 2017-02-14 11:32:53 · 318 阅读 · 0 评论 -
POJ 3693 Maximum repetition substring (后缀数组+RMQ 求重复最多的连续子串)
/* * POJ 3693 Maximum repetition substring * 先穷举长度L,然后求长度为L的子串最多能连续出现多少次 * 既然长度为L的串重复出现,那么str[0],str[l],str[2*l]……中肯定有两个连续的出现在字符串中。那么就枚举连续的两个,然后从这两个字符前后匹配,看最多能匹配多远。即以str[i*l],str[i*l+l]前后匹配,这里是通过原创 2017-02-13 20:21:52 · 377 阅读 · 0 评论 -
poj 3080 求多个串的公共字串(同poj3450)
//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All rights reserved.//#include #include #include #include #include using namespace std;const int i原创 2017-02-21 18:54:59 · 309 阅读 · 0 评论 -
poj 3450求多个串的最长公共字串
//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All rights reserved.//#include #include #include #include #include using namespace std;const int i原创 2017-02-21 18:53:16 · 399 阅读 · 0 评论 -
poj 3693连续重复最多的串
题意:问连续重复部分最多的串是什么,不能重叠,且我们要字典序最小的串如xbcabcab,有bcabca重复次数为2,cabcab重复次数也为2,那么要前边那个思路:以前写过一个类似的,SPOJ 687,这个只是求连续重复部分最多的串的次数,并不需要将按字典序最小串输出,那么我们可以用到SPOJ687的代码,用它我们可以求出那个重复的次数和满足这个次数的串的长度,那么就只差找到字典序最小的那原创 2017-02-21 18:51:21 · 325 阅读 · 0 评论 -
POJ 1509 环形后缀数组
//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All rights reserved.//#include #include #include #include #include using namespace std;//分析是学长的/*题原创 2017-02-09 13:22:38 · 325 阅读 · 0 评论 -
SPOJ 694&&705
题意:问一个串的子串可以有多少种,就是将重复的去掉思路:每个子串一定是某个后缀的前缀,对于某个后缀sa来说,它的最长前缀就是重复的个数,那么减去就好,而最长前缀可以通过后缀数组的sa数组线性求出//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All right原创 2017-02-08 22:27:53 · 291 阅读 · 0 评论 -
SPOJ 694&&705
题意:问一个串的子串可以有多少种,就是将重复的去掉思路:每个子串一定是某个后缀的前缀,对于某个后缀sa来说,它的最长前缀就是重复的个数,那么减去就好,而最长前缀可以通过后缀数组的sa数组线性求出//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All原创 2017-02-08 22:24:49 · 269 阅读 · 0 评论 -
poj 2217
//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All rights reserved.//#include #include #include #include #include using namespace std;//poj 2217后原创 2017-02-07 17:29:18 · 277 阅读 · 0 评论 -
poj 2774求两个串的公共前缀 后缀数组
//// main.cpp// 后缀数组//// Created by liuzhe on 17/2/5.// Copyright © 2017年 my_code. All rights reserved.//#include #include #include #include #include using namespace std;//poj 2774后原创 2017-02-07 17:27:38 · 548 阅读 · 0 评论 -
poj 3581
题意:将一个数列分成连续的三段,每段必须有数字,问这三段反转后的数列的最小字典序的方案,并输出,注意:第一个数比后面所有都大思路:因为第一个数最大,那么将整个数列反转后的字典序最小的后缀为第一段分开位置,但是要判断情况,如最后还要至少剩下两个数完成后两段,接下来找第二段的分开位置,不可以像刚刚那么找了,想这个例子,将第一段去掉后是这样的,1 3 2 1 100 如果和第一次一样的方法结果是1原创 2017-02-07 17:25:04 · 315 阅读 · 0 评论 -
求两个字符串的(连续的)最长公共子串
转载请注明出处http://blog.csdn.net/MonkeyAndy问题:给出两个字符串,求出这两个字符串的连续的最长公共子序列例如 : char* a="aocdfacddcdfe"; char* b="pmcdfacdfe";连续的最长公共子序列为 “cdfacd”问题分析:思路及算法流程:1、以a串转载 2017-08-20 21:39:03 · 818 阅读 · 0 评论