Palindrome---poj3974(最大回文子串manacher)
题目链接:http://poj.org/problem?id=3974
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std;
const int N = 2e6+; int p[N];
char s[N];
int Manacher(char s[], int n)
{
int Id=, mx = , ans = ;
for(int i=; i<n; i++)
{
if(mx > i)
p[i] = min(p[Id*-i], mx-i);
else
p[i] = ;
while(s[i+p[i]] == s[i-p[i]])
p[i]++;
if(mx < p[i]+i)
{
mx = p[i]+i;
Id = i;
}
ans = max(ans, p[i]);
}
return ans - ;
}
int main()
{
int t=;
while(scanf("%s", s),strcmp(s, "END"))
{
int len = strlen(s);
for(int i=len; i>=; i--)
{
s[i+i+] = s[i];
s[i+i+] = '#';
}
s[] = '$';
int ans = Manacher(s, *len+);
printf("Case %d: %d\n", t++, ans);
}
return ;
}
Palindrome---poj3974(最大回文子串manacher)的更多相关文章
- 最长回文子串——manacher
最长回文子串--Manacher 算法 (原版的博主的代码都是用py写的,这里改成c++) c++ 算法 字符串处理 0. 问题定义 最长回文子串问题:给定一个字符串,求它的最长回文子串长度. 如果一 ...
- 九度OJ 1528 最长回文子串 -- Manacher算法
题目地址:http://ac.jobdu.com/problem.php?pid=1528 题目描述: 回文串就是一个正读和反读都一样的字符串,比如"level"或者"n ...
- lintcode最长回文子串(Manacher算法)
题目来自lintcode, 链接:http://www.lintcode.com/zh-cn/problem/longest-palindromic-substring/ 最长回文子串 给出一个字符串 ...
- 最长回文子串Manacher算法模板
Manacher算法能够在O(N)的时间复杂度内得到一个字符串以任意位置为中心的回文子串.其算法的基本原理就是利用已知回文串的左半部分来推导右半部分. 首先,在字符串s中,用rad[i]表示第i个字符 ...
- URAL 1297 Palindrome 最长回文子串
POJ上的,ZOJ上的OJ的最长回文子串数据量太大,用后缀数组的方法非常吃力,所以只能挑个数据量小点的试下,真要做可能还是得用manacher.贴一下代码 两个小错,一个是没弄懂string类的sub ...
- 最长回文子串—Manacher 算法 及 python实现
最长回文子串问题:给定一个字符串,求它的最长回文子串长度.如果一个字符串正着读和反着读是一样的,那它就是回文串. 给定一个字符串,求它最长的回文子串长度,例如输入字符串'35534321',它的最 ...
- hihocoder #1032 : 最长回文子串 Manacher算法
题目链接: https://hihocoder.com/problemset/problem/1032?sid=868170 最长回文子串 时间限制:1000ms内存限制:64MB 问题描述 小Hi和 ...
- Girls' research---hdu3294(回文子串manacher)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3294 给出一个字符串和加密的字符规律 例如 c abcba c代表把串中的c改成a,d改成b... b ...
- 5. Longest Palindromic Substring(最长回文子串 manacher 算法/ DP动态规划)
Given a string s, find the longest palindromic substring in s. You may assume that the maximum lengt ...
- HiHo 1032 最长回文子串 (Manacher算法求解)
/** * 求解最长回文字串,Manacher算法o(n)求解最长回文子串问题 **/ #include<cstdio> #include<cstdlib> #include& ...
随机推荐
- java 解压.gz文件
1.//建立gzip压缩文件输入流 2.建立gzip解压工作流 fileInputStream = new FileInputStream(filePath + fileName); //解凍する G ...
- 29个酷炫的Firefox配置参数
你可能安装了许多的firefox插件以增加浏览器的功能,但是如果你想更好地使用firefox,学习如何配置about:config参数是很有必要的. about:config配置页包含了所有的fire ...
- Linux编译安装PHP Mysql Nginx
安装gcc g++等编译器 yum -y install gcc gcc-c++ automake autoconf libtool glibc make 安装一些lnmp依赖的库 yum -y in ...
- HeadFisrt 设计模式03 装饰者
类应该对扩展开放, 对修改关闭. 所谓装饰者模式, 是指用其他的类来装饰某个类, 装饰者说白了就是使用 has-a 来代替 is-a 隐喻 咖啡店, 有很多种咖啡, 咖啡里还要增加一些 milk, 面 ...
- java 多线程 3 synchronized 同步
多任务编程的难点在于多任务共享资源.对于同一个进程空间中的多个线程来说,它们都共享堆中的对象.某个线程对对象的操作,将影响到其它的线程. 在多线程编程中,要尽力避免竞争条件(racing condit ...
- HTML的footer置于页面最底部的方法
方法一:footer高度固定+绝对定位 <html> <head> <style type="text/css"> html{height:%; ...
- 解决myeclipse启动慢的问题
去掉拼写检查:windows->preferences->General->Editors->Text Editors->Spelling 将"Enable s ...
- Python3创建RIDE桌面快捷方式的另一种方法
今天尝试了一下Python3下安装Robot Framework,但是原来的Python2下创建ride快捷方式的方法都不奏效,启动不了ride.于是,转为VBS脚本的方式来间接创建快捷方式.毕竟,每 ...
- angularJs多文件上传
<input type="file" id="file{{$index}}" class="file{{$index}}" ngf-s ...
- Eclipse & Visual Studio
VS中的解决方案 vs Eclipse中的workspace Maven包管理 vs Nuget类库管理 build path vs