感谢:http://blog.csdn.net/ggggiqnypgjg/article/details/6645824/O(n)求给定字符串的以每个位置为中心的回文串长度。中心思想:每次计算位置i的答案时,利用已经算出的1~i-1位置的答案。 1 #include 2 #include 3 #.....
分类:
其他好文 时间:
2015-03-03 18:20:13
阅读次数:
166
Problem Description
吉哥又想出了一个新的完美队形游戏!
假设有n个人按顺序站在他的面前,他们的身高分别是h[1], h[2] ... h[n],吉哥希望从中挑出一些人,让这些人形成一个新的队形,新的队形若满足以下三点要求,则就是新的完美队形:
1、挑出的人保持原队形的相对顺序不变,且必须都是在原队形中连续的;
2、左右对称,假设有m个人形成新的队...
分类:
其他好文 时间:
2015-03-03 13:35:02
阅读次数:
162
最长回文子串就是一个字符串的一个子串,他从左往右读和从右往左读是一样的。 可以用 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
传送门:3-Palindromes题意:求为回文串且能整除3且不前导0的子串个数。分析:由 manacher算法O(N)可算出以i为坐标的最长为p[i]回文子串,且Si-k,Si-k+1......Si+k-1,Si+k(0#include #include #include #include #i...
分类:
其他好文 时间:
2015-02-25 18:36:09
阅读次数:
205
传送门: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