一、模板 算法解析:http://www.felix021.com/blog/read.php?2040 二、题目 1、【HDU 4513】吉哥系列故事――完美队形II 题意:输入n(1 <= n <= 100000)个人的身高hi(50 <= hi <= 250),从这些人中连续挑出k个人,这k个 ...
分类:
编程语言 时间:
2016-05-07 16:25:13
阅读次数:
208
找一个字符串里的最长回文子串。
暴力法:定中心,从0长度向两端扩展的方法O(n^2), n >= 10^5还是超时,故只能《O(n^2)
Manacher's 算法:定中心,从p[r],(已能确定以该点为中心两端是回文的长度开始),向两端扩展,时间复杂度, O(n)
算法如下:
示意图:
定义:
cen:当前中心点
p[i]: 以i为中心两端满足回文的长度...
分类:
编程语言 时间:
2016-05-07 10:12:49
阅读次数:
1042
附上题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 这个题的意思是给你一个串, 求这个串中的最长的回文串的长度, 直接裸manacher即可。 代码如下: ...
分类:
编程语言 时间:
2016-05-03 23:53:27
阅读次数:
229
Manacher算法能够在O(N)的时间复杂度内得到一个字符串以任意位置为中心的回文子串。其算法的基本原理就是利用已知回文串的左半部分来推导右半部分。 例题:HDU 3068 参考文章:http://www.cnblogs.com/Lyush/p/3221503.html ...
分类:
编程语言 时间:
2016-05-01 14:57:44
阅读次数:
183
#1032 : 最长回文子串
时间限制:1000ms
单点时限:1000ms
内存限制:64MB
描述
小Hi和小Ho是一对好朋友,出生在信息化社会的他们对编程产生了莫大的兴趣,他们约定好互相帮助,在编程的学习道路上一同前进。
这一天,他们遇到了一连串的字符串,于是小Hi就向小Ho提出了那个经典的问题:“小Ho,你能不能分别在这些字符...
分类:
编程语言 时间:
2016-05-01 12:23:05
阅读次数:
202
0. 问题定义
最长回文子串问题:给定一个字符串,求它的最长回文子串长度。
如果一个字符串正着读和反着读是一样的,那它就是回文串。下面是一些回文串的实例:
12321 a aba abba aaaa tattarrattat(牛津英语词典中最长的回文单词)
1. Brute-force 解法
对于最长回文子串问题,最简单粗暴的办法是:找到字符串的所有子串,遍历每一个子串以...
分类:
编程语言 时间:
2016-04-26 22:08:03
阅读次数:
229
之前做过类似的题,只是理解了,还没达到驾轻就熟,想到即敲出的地步,所以再练一次。
顺带将Manacher算法思想解释一遍,加强印象,也算作分享吧。
Manacher我们用f(x)表示以x位置为中心的回文串的长度
j相对i的对应位置是j’
那么f(j)与f(j’)和f(i)有什么关系呢。
先看第一张图,下面那条横杠表示f(i),那么,既然j’与j相对应,j’的回文串长度已经求出,那么j...
分类:
其他好文 时间:
2016-04-10 06:53:48
阅读次数:
137
最长回文子串问题—Manacher算法
最长回文串问题是一个经典的算法题。
0. 问题定义
最长回文子串问题:给定一个字符串,求它的最长回文子串长度。
如果一个字符串正着读和反着读是一样的,那它就是回文串。下面是一些回文串的实例:
12321 a aba abba aaaa tattarrattat(牛津英语词典中最长的回文单词)...
分类:
其他好文 时间:
2016-04-04 15:01:02
阅读次数:
176
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2342 【题意】 求出形如w wR w wR的最长连续子串。 【思路】 用manacher算法计算出p[],表示以i与i+1为中心的最长回文字串长度/2 枚举第一个wR的结束位置x,当且仅 ...
分类:
其他好文 时间:
2016-04-03 00:13:36
阅读次数:
242