多敲几个模板题,加深一下对Manacher算法的理解。这道题给的时间限制15s,是我见过的最长的时间的了。看来是为了让一些比较朴素的求最大回文子串的算法也能A过去Manacher算法毕竟给力,运行时间200+MS 1 //#define LOCAL 2 #include 3 #include 4.....
                            
                            
                                分类:
其他好文   时间:
2014-08-18 21:51:12   
                                阅读次数:
236
                             
                    
                        
                            
                            
                                最长回文
                                                                        Time Limit: 4000/2000 MS (Java/Others)    Memory Limit:
 32768/32768 K (Java/Others)
Problem Description
给出一个只由小写...
                            
                            
                                分类:
其他好文   时间:
2014-08-18 18:33:52   
                                阅读次数:
203
                             
                    
                        
                            
                            
                                本题就是求最长的回文子串。
字符串超长,不过限时却是也很长的15秒,最长的限时之一题目了,如果限时短点的话,估计能过的人不多。
使用Mancher算法是可以秒杀的。
模板式的Manacher算法:
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#includ...
                            
                            
                                分类:
其他好文   时间:
2014-08-14 14:12:18   
                                阅读次数:
139
                             
                    
                        
                            
                            
                                hdu3294:http://acm.hdu.edu.cn/showproblem.php?pid=3294题意:就是给你一个串,然后求一个最长的回文串,输出起点及串,但是这里在之前要转化一下。题解:转化一下,就是简单的Manacher算法。 1 #include 2 #include 3 #inc...
                            
                            
                                分类:
其他好文   时间:
2014-08-09 15:40:19   
                                阅读次数:
195
                             
                    
                        
                            
                            
                                hdu3068:http://acm.hdu.edu.cn/showproblem.php?pid=3068题意:给你一个字符串,求最长的回文串的长度。题解:第一次,接触Manacher算法,这是一个模板题。 1 #include 2 #include 3 #include 4 #include 5...
                            
                            
                                分类:
其他好文   时间:
2014-08-09 13:17:47   
                                阅读次数:
260
                             
                    
                        
                            
                            
                                Manacher是一个可以在O(n)的时间内求出一个长度为n的字符串的算法。以为回文子串有偶数长度,也有奇数长度,分别处理会很不方便。所以在每两个字符中间插入一个无关字符,如‘#’,这样所有的回文子串都变为奇数长度。两端在添加不同的无关字符防止匹配时越界。如: abba 变成 $#a#b#b#a#&...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 21:12:56   
                                阅读次数:
299
                             
                    
                        
                            
                            
                                题目链接最长回文Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 7976Accepted Submission(s): 2735Problem De...
                            
                            
                                分类:
其他好文   时间:
2014-08-08 15:16:36   
                                阅读次数:
277
                             
                    
                        
                            
                            
                                Manacher算法o(n)求解最长回文子串问题 非常巧妙
#include
using namespace std;
char str[2000020],s[2000020];
int p[2000020];
int len,id,mx;
void pre() //对字符串进行预处理
{
    len=strlen(s);
    str[0]='$';
    str[1]='#';...
                            
                            
                                分类:
其他好文   时间:
2014-08-07 09:50:39   
                                阅读次数:
237
                             
                    
                        
                            
                            
                                Manacher算法是个解决Palindrome问题的O(n)算法,可以说是个超级算法了,秒杀其他一切Palindrome解决方案,包括复杂的后缀数组。
网上很多解释,这里总结一下思想重点:
1 原字符串的字符间插入新的字符, 如#,方便统一所有的字符中心,比如aa和aba的字符中心不一样的,aa的字符中心可以说是aa,而aba的中心则是b,而插入#之后,aa成#a#a#,其中...
                            
                            
                                分类:
其他好文   时间:
2014-07-31 03:04:15   
                                阅读次数:
224
                             
                    
                        
                            
                            
                                题目来源:吉哥系列故事——完美队形II
题意:中文
思路:在manacher算法向两边扩展的时候加判断 保证非严格递减就行了
#include 
#include 
#include 
using namespace std;
const int maxn = 100110;
int a[maxn<<1];
int b[maxn<<1];
int dp[maxn<<1];
int manac...
                            
                            
                                分类:
其他好文   时间:
2014-07-23 17:18:54   
                                阅读次数:
381