Manacher算法
Rocky0429
我愿能朝着太阳生长,做一个温暖的人。
展开
-
HDU 5371(2015多校7)-Hotaru's problem(Manacher算法求回文串)
题目地址:HDU 5371 题意:给你一个具有n个元素的整数序列,问你是否存在这样一个子序列,该子序列分为三部分,第一部分与第三部分相同,第一部分与第二部分对称,如果存在求最长的符合这种条件的序列。 思路:用Manacher算法来处理回文串的长度,记录下以每一个-1(Manacher算法的插入)为中心的最大回文串的长度。然后从最大的开始穷举,只要p[i]-1即能得出以数字为中心的最大回文串的长度原创 2015-08-12 16:14:20 · 1227 阅读 · 0 评论 -
HDU 5340-Three Palindromes(Manacher算法)
题目地址:HDU 5340 题意:问是否能将字符串str分解为三段非空的回文串。 思路:我们根据Manacher算法对字符串进行处理,处理过程中产生的P数组,我们可以得到两个数组first和last。 first存储的是第一个回文串的半径可能值。 last存储的是第三个回文串的半径可能值。 根据first和last我们可以枚举第一个回文串和第三个回文串,然后根据半径找出第二个回文串的初始位原创 2015-08-03 15:39:55 · 1287 阅读 · 0 评论 -
HDU 3068-最长回文(Manacher算法O(n)求最长回文串)
题目地址:HDU 3068 关于算法的详解:Manacher算法#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm> #include <set> #include <queue>原创 2015-08-03 11:36:01 · 1256 阅读 · 0 评论 -
POJ 3974-Palindrome(Manacher算法)
题目地址:POJ 3974 题意:求最长的回文串。 思路:同样是用Mancher算法在O(n)的时间内解决(我其实是来练练板子的#include <stdio.h> #include <math.h> #include <string.h> #include <stdlib.h> #include <iostream> #include <sstream> #include <algorithm原创 2015-08-03 12:31:42 · 1534 阅读 · 0 评论