简单来说这是个很水的东西。有点dp的思想吧。推荐两个博客,很详细。

http://blog.csdn.net/xingyeyongheng/article/details/9310555

http://blog.csdn.net/ggggiqnypgjg/article/details/6645824

然后以为随便学点然后去复习,结果……呵呵。什么鬼数据,两行之间用空行隔开……没看到一直wa半节课……

hdu3068最长回文

var
s1,s2:ansistring;
s:array[..]of char;
p:array[..]of longint;
max,ans,mid,i,len:longint;
ch:char;
flag:boolean; function min(x,y:longint):longint;
begin
if x<y then min:=x
else min:=y;
end; begin
while not eof do begin
readln(s1);
readln(s2);
len:=length(s1);
fillchar(p,sizeof(p),);
s[]:='$';
s[]:='#';
for i:= to len do begin
s[i*]:=s1[i];
s[i*+]:='#';
end;
len:=len*+;
s[len]:='#';
mid:=;
max:=;
ans:=;
for i:= to len do begin
if max>i then
p[i]:=min(p[mid*-i],max-i)
else p[i]:=;
while s[i+p[i]]=s[i-p[i]] do inc(p[i]);
if p[i]+i>max then begin
max:=p[i]+i;
mid:=i;
end;
if ans<p[i] then ans:=p[i];
end;
writeln(ans-);
end;
end.

简单来说就是判断是否被前面的覆盖到,如果有,根据对称性可以可得一个长度(min=(p[mid<<1-i],max-i)),如果没有就长度为1,然后再根据这个长度扩展,顺便更新下最大值。

这渣状态……!!

hdu3068最长回文(Manacher算法)的更多相关文章

  1. HDU3068 最长回文 Manacher算法

    Manacher算法是O(n)求最长回文子串的算法,其原理很多别的博客都有介绍,代码用的是clj模板里的,写的确实是异常的简洁,现在的我只能理解个大概,下面这个网址的介绍比较接近于这个模板,以后再好好 ...

  2. [hdu3068 最长回文]Manacher算法,O(N)求最长回文子串

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 题意:求一个字符串的最长回文子串 思路: 枚举子串的两个端点,根据回文串的定义来判断其是否是回文 ...

  3. hdu 3068 最长回文 manacher算法(视频)

    感悟: 首先我要Orz一下qsc,我在网上很难找到关于acm的教学视频,但偶然发现了这个,感觉做的很好,链接:戳戳戳 感觉这种花费自己时间去教别人的人真的很伟大. manacher算法把所有的回文都变 ...

  4. hdu_3068 最长回文(Manacher算法)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 最长回文 Time Limit: 4000/2000 MS (Java/Others)    M ...

  5. HDU3068 最长回文 MANACHER+回文串

    原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符 ...

  6. hdu-3068-最长回文(manacher算法模板)

    题目链接 /* Name:hdu-3068-最长回文 Copyright: Author: Date: 2018/4/24 16:12:45 Description: manacher算法模板 */ ...

  7. hdu3068 最长回文 manacher

    给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 manacher裸题 #include<stdio. ...

  8. HDU 3068 最长回文 manacher 算法,基本上是O(n)复杂度

    下面有别人的比较详细的解题报告: http://wenku.baidu.com/view/3031d2d3360cba1aa811da42.html 下面贴我的代码,注释在代码中: #include ...

  9. HDU 3068 最长回文 Manacher算法

    Manacher算法是个解决Palindrome问题的O(n)算法,能够说是个超级算法了,秒杀其它一切Palindrome解决方式,包含复杂的后缀数组. 网上非常多解释,最好的解析文章当然是Leetc ...

随机推荐

  1. C调用约定__cdecl、__stdcall、__fastcall、__pascal分析

    参考原文地址:https://www.cnblogs.com/yenyuloong/p/9626658.html C/C++ 中不同的函数调用规则会生成不同的机器代码,产生不同的微观效果,接下来让我们 ...

  2. 【Commare中关于理论范畴和技术常用的技术术语】

    1:地址掩码,分类2:OSI/TCP-IP层,归属,作用3:debugg,dispaly具体配置,排错,现象4:原理5:术语 | | = 局域网,广域网 | | = ( (OSPF,RIP,ISIS, ...

  3. 如何理解NaN?

    NaN这个特殊的Number与所有其他值都不相等,包括它自己:   NaN===NaN:  //false   唯一能判断NaN的方法是通过isNaN()函数:   isNaN(NaN);  //tr ...

  4. Angular-chart.js 使用说明(基于angular.js工程)

    Angular-chart.js是基于Chart.js的angular组件,引入项目后直接操作数据即可. 引用方法:    分别将Chart.js.angular-chart.js.angular-c ...

  5. php常见面试(Smarty及相关知识)

    1.Smarty简介: 是一种php模板引擎,它分开了后台程序和前台页面内容,使程序员和美工分工合作.还有其它模版引擎实现同样的目的. 2.Smarty使用: 建立php文件: 包含smarty类文件 ...

  6. python3 练习题100例 (二十一)打印一定范围内的水仙花数

    题目内容: 水仙花数是指一个n位数 (n≥3),它的每个位上的数字的n次幂之和等于它本身. 例如:153是一个“水仙花数”,因为 153 是个 3位数,而1**3+5**3+3**3==153. 输入 ...

  7. 4.《python自省指南》学习

    前言   前面几篇博客我都是通过python自省来分析代码并试图得出结论.当然,仅仅通过自省能解决的问题有限,但遇到问题还是不自主的去用这个功能,觉得对于认识代码的含义还是有一定帮助的.而这些自省的知 ...

  8. ES6--Set之再理解

    Set 其实2016年就看过阮大神的ECMAScript 6 入门,当时看了Set之后,大致看懂了,但事实上根本没有理解Set到底是什么,所以更记不住,平时做项目大多用到的还是ES5的传统写法,以至于 ...

  9. HBase 通过myeclipce脚本来获取固定columns(获取列簇中的列及对应的value值)

    第一步:关联Jar包 1. 配置hadoop-env.sh文件添加Hbase关联jar包 /opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop下编辑hadoop- ...

  10. JAVA大作业汇总3

    JAVA大作业3 代码 ``` package thegreatwork; import java.util.; import java.io.; /Board.java 目的:里面有一些关于如何移动 ...