题目链接:https://vjudge.net/problem/HDU-3294 Girls' research Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submission(s): 3209    Accepted Submission(s): 1228 Problem Description One day, sailormoon girls are so…
One day, sailormoon girls are so delighted that they intend to research about palindromic strings. Operation contains two steps:First step: girls will write a long string (only contains lower case) on the paper. For example, "abcde", but 'a' ins…
1.KMP算法详解与应用 子序列:可以连续可以不连续. 子数组/串:要连续 暴力方法:逐个位置比对. KMP:让前面的,指导后面. 概念建设: d的最长前缀与最长后缀的匹配长度为3.(前缀不能到最后一个,后缀也不能到第一个) 先计算出str2的全部匹配信息. 一路相等,直到X与Y不匹配,根据X位置的最长前后缀信息加速. 例子: 用str1的第一个不同的位置(t)从str2最长前缀的下标位置(a)开始比对. (加强)再说说流程,举例子: j是推到和后缀等量的位置,如果碰到一个字符最长前后缀为0(该…
BUPT2017 wintertraining(15) #5F HDU - 3294 题意 给定字母x,字符串变换一下: 'x'-1 -> 'z', 'x'->'a', 'x'+1->'b', ..., 求对应的字符串的最长的回文串. 题解 求最长回文串的O(n)的算法:Manacher算法 算法过程: 用'#'号把每个字符分隔开,且开头结尾都是'#'. RL[i]为以i为中心的最长回文最右的字符与i的距离. 已经求过的回文串中,右端点最大的回文串的中心为p. 求当前的RL[i]时,若…
Girls' research Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others) Total Submission(s): 1160    Accepted Submission(s): 448 Problem Description One day, sailormoon girls are so delighted that they intend to research a…
题目链接: Hdu 3294  Girls' research 题目描述: 给出一串字符串代表暗码,暗码字符是通过明码循环移位得到的,比如给定b,就有b == a,c == b,d == c,.......,a == z. 问最长回文串所在区间,以及最长回文串所表示的明码. 解题思路: 字符串长度[1,200000],用manacher算法很轻松就搞定了. get√新技能请点击me #include <cstdio> #include <string> #include <c…
内容: 1.原始问题   =>O(N^2) 2.Manacher算法   =>O(N) 1.原始问题 Manacher算法是由题目“求字符串中长回文子串的长度”而来.比如 abcdcb 的最长回文子串为 bcdcb ,其长度为5 暴力解法: 可以遍历字符串中的每个字符,当遍历到某个字符时就比较一下其左边相邻的字符和其右边相邻的字符是否相同, 如果相同则继续比较其右边的右边和其左边的左边是否相同,如果相同则继续比较……,我们暂且称这个过程为向外“扩”. 当“扩”不动时,经过的所有字符组成的子串就…
转载自: http://blog.csdn.net/dyx404514/article/details/42061017 Manacher算法 算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法. 相对于前面介绍的两个算法,Manacher算法的应用范围要狭窄得多,但是它的思想和拓展kmp算法有很多共通支出,所以在这里介绍一下.Manacher算法是查找一个字符串的最长回文子串的线…
最长回文 Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others) Total Submission(s): 5158    Accepted Submission(s): 1755 Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等   Input 输入有…
问题 什么是回文串,如果一个字符串正着度读和反着读是一样的,这个字符串就被称为回文串. such as noon level aaa bbb 既然有了回文,那就要有关于回文的问题,于是就有了-- 最长回文子串:给定一个字符串,求它的最长回文子串长度. 暴力 找出所有的子串,遍历每个子串判断他们是否为回文串. 时间复杂度\(O(n^3)\) 优化 因为回文串是对称的,根据这个性质,枚举每个位置,找在这个位置上能扩展到的最长回文串. 时间复杂度\(O(n^2)\) Manacher算法 打开洛谷的模…