最长回文子串动态规划的方法的参考Palindrome Partitioning (回文子串题)代码:class Solution {public: string longestPalindrome(string s) { int n=s.size(); int dp...
分类:
其他好文 时间:
2015-03-03 20:39:26
阅读次数:
105
最长回文子串就是一个字符串的一个子串,他从左往右读和从右往左读是一样的。 可以用 Manacher 算法来求,他的复杂度是 O(n) 。 可以看这篇文章 http://blog.csdn.net/ywhorizen/article/details/6629268 但是其中应该有一个错误(纠...
分类:
其他好文 时间:
2015-03-01 17:04:01
阅读次数:
139
关于Manacher算法,网上介绍已经很全面 这里说一下自己的理解这里的rad数组:rad[i]表示以以位置i为中心的最长回文串的回文半径(不包括i这个点)。朴素的思想大概是从每个点出发像两边扩展,大概O(n^2)复杂度?据说Manacher是O(n)的(不会证,Orz)这是因为回文串有对称性,我们...
分类:
其他好文 时间:
2015-02-26 18:17:57
阅读次数:
191
传送门:Girls' research题意:求最长回文串并输出位置及转换后的字符串。分析:manacher算法算出最长回文串后记录中心位置,然后再转换回原字符串的起始和结束位置。#pragma comment(linker,"/STACK:1024000000,1024000000")#includ...
分类:
其他好文 时间:
2015-02-25 16:48:34
阅读次数:
166
传送门:吉哥系列故事——完美队形II题意:求最长回文队伍且队伍由中间向两边递减。分析:manach算法小应用,在判断回文子串向两边递减时加点限制使回文是由中间向两边递减的。#pragma comment(linker,"/STACK:1024000000,1024000000")#include #...
分类:
其他好文 时间:
2015-02-25 15:25:42
阅读次数:
180
传送门:Palindrome题意:给定一个字符串,求最长回文子串。分析:manach裸题,核心理解mx>i?p[i]=min(p[2*id-i],mx-i):1.#pragma comment(linker,"/STACK:1024000000,1024000000")#include #inclu...
分类:
其他好文 时间:
2015-02-25 14:09:17
阅读次数:
117
1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include 13 #in...
分类:
编程语言 时间:
2015-02-24 22:09:02
阅读次数:
329
题目大意:给定一个字符串,求一个最长的子串,该字串可以分解为两个回文子串
傻逼的我又忘了Manacher怎么写了= = 无奈Hash+二分吧
首先将字符串用分隔符倍增,然后求出以每个点为中心的最长回文半径
然后考虑两个回文串怎么合并成一个
我们发现图中以i为中心的回文串和以j为中心的回文串合并后长度恰好为(j-i)*2
能合并的前提是以两个点为中心的回文串有交点
那么对于每个j...
分类:
其他好文 时间:
2015-02-24 17:30:32
阅读次数:
127
Manacher(马拉车)是一种求最长回文串的线性算法,复杂度O(n)。网上对其介绍的资料已经挺多了的,请善用搜索引擎。而扩展KMP说白了就是是求模式串和主串的每一个后缀的最长公共前缀【KMP更像是一个自动机】题目:POJ 1159:Palindrome求原字符串最少增加几个字符后可变成回文串,相当...
分类:
其他好文 时间:
2015-02-21 23:26:15
阅读次数:
242
这题可用拓展KMP分治法来做http://blog.sina.cn/dpool/blog/s/blog_677a3eb30100knj8.html 复杂度O(nlogn)这种方法好复杂而且代码很长,不易理解。
相比之下Manacher就简单多了,算法本身也很简单 这里个易懂的资料http://wenku.baidu.com/view/3031d2d3360cba1aa811da42.html
...
分类:
其他好文 时间:
2015-02-21 09:47:21
阅读次数:
166