题目链接

之前做很早了没写这篇,补上。

记录当前ex[]最大的回文中心id和最远延伸范围mx!

关于串的构造:

应该是 @ #A#B#C#B#A# $ ,而不是 @ A#B#C#B#A $

比如 @a#b#b#c$,答案应是\(max\{ex[i]\}-1\),而第二种很多情况下答案是\(max\{ex[i]\}\).

最优解不改串分奇偶讨论感觉sxbk。。其实也没什么

#include <cstdio>
#include <cstring>
#include <algorithm>
const int N=22000010; int n,ex[N];
char tmp[N>>1],s[N]; void Init()
{
n=strlen(tmp), s[0]='@';
for(int i=0; i<n; ++i)
s[i<<1|1]='#', s[(i<<1)+2]=tmp[i];
s[n=2*n+2]='$', s[n-1]='#';
}
void Manacher()
{
int res=0,mx=0,id;
for(int i=1; i<n; ++i)
{
if(i<mx) ex[i]=std::min(ex[id*2-i],mx-i);
else ex[i]=1;
while(s[i+ex[i]]==s[i-ex[i]]) ++ex[i];
// if(ex[i]>res) res=ex[i];//不在这更新也是对的,懒得具体想了。。
if(i+ex[i]>mx) id=i,mx=i+ex[i],res=std::max(res,ex[i]);
}
printf("%d",res-1);
} int main()
{
scanf("%s",tmp), Init(), Manacher();
return 0;
}

洛谷.3805.[模板]manacher算法的更多相关文章

  1. 洛谷P3805 [模板]Manacher算法 [manacher]

    题目传送门 题目描述 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 字符串长度为n 输入输出格式 输入格式: 一行小写英文字符a,b,c...y,z组成的字符 ...

  2. 洛谷P3373 [模板]线段树 2(区间增减.乘 区间求和)

    To 洛谷.3373 [模板]线段树2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 1.将某区间每一个数加上x 2.将某区间每一个数乘上x 3.求出某区间每一个数的和 输入输出格式 输入格 ...

  3. 洛谷P3375 [模板]KMP字符串匹配

    To 洛谷.3375 KMP字符串匹配 题目描述 如题,给出两个字符串s1和s2,其中s2为s1的子串,求出s2在s1中所有出现的位置. 为了减少骗分的情况,接下来还要输出子串的前缀数组next.如果 ...

  4. LCT总结——概念篇+洛谷P3690[模板]Link Cut Tree(动态树)(LCT,Splay)

    为了优化体验(其实是强迫症),蒟蒻把总结拆成了两篇,方便不同学习阶段的Dalao们切换. LCT总结--应用篇戳这里 概念.性质简述 首先介绍一下链剖分的概念(感谢laofu的讲课) 链剖分,是指一类 ...

  5. 【AC自动机】洛谷三道模板题

    [题目链接] https://www.luogu.org/problem/P3808 [题意] 给定n个模式串和1个文本串,求有多少个模式串在文本串里出现过. [题解] 不再介绍基础知识了,就是裸的模 ...

  6. 洛谷-P5357-【模板】AC自动机(二次加强版)

    题目传送门 -------------------------------------- 过年在家无聊补一下这周做的几道AC自动机的模板题 sol:AC自动机,还是要解决跳fail边产生的重复访问,但 ...

  7. 洛谷.1919.[模板]A*B Problem升级版(FFT)

    题目链接:洛谷.BZOJ2179 //将乘数拆成 a0*10^n + a1*10^(n-1) + ... + a_n-1的形式 //可以发现多项式乘法就模拟了竖式乘法 所以用FFT即可 注意处理进位 ...

  8. 洛谷.3803.[模板]多项式乘法(FFT)

    题目链接:洛谷.LOJ. FFT相关:快速傅里叶变换(FFT)详解.FFT总结.从多项式乘法到快速傅里叶变换. 5.4 又看了一遍,这个也不错. 2019.3.7 叕看了一遍,推荐这个. #inclu ...

  9. 洛谷.3803.[模板]多项式乘法(NTT)

    题目链接:洛谷.LOJ. 为什么和那些差那么多啊.. 在这里记一下原根 Definition 阶 若\(a,p\)互质,且\(p>1\),我们称使\(a^n\equiv 1\ (mod\ p)\ ...

随机推荐

  1. BrupSuite渗透测试笔记(十一)

    一.数据查找和拓展功能的使用 1.BrupSuite高级功能在界面布局上主要分成两个部分,一是菜单栏,另一个是Engagement tools,Brup菜单下包含的数据查找Search 组件状态存储. ...

  2. git 小乌龟安装教程

    一.windows系统安装git 首先下载git for windows客户端http://msysgit.github.io/ 安装过程没什么特别的,不停next就ok了     图太多就不继续了~ ...

  3. 论文阅读笔记三十七:Grid R-CNN(CVPR2018)

    论文源址:https://arxiv.org/abs/1811.12030 开源代码:未公开 摘要 本文提出了目标检测网络Grid R-CNN,其基于网格定位机制实现准确的目标检测.传统方法主要基于回 ...

  4. VS和IIS的一些问题

    运行所有MVC一直502,重启了iis服务, 之后弹出这个框: 之后的解决办法: 1. If you open the applicationhost,config file in VS while ...

  5. 步步为营-84-数字转化为金额的Js+enter键取消页面刷新

    说明:来不及细说了,老铁快上车 function fmoney(s, n) { console.log(s); n = n > && n <= ? n : ; s = pa ...

  6. 没有-jackson相关依赖会抛出如下异常--------在spring官方文档有解释

    <!--jackson相关依赖--><!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackso ...

  7. linux基础练习题(1)

    Linux命令作业(关卡一) 练习题1 理解操作系统的作用,以及各种操作系统的不同 要求: 简述什么是OS 简述应用程序.硬件.OS的关系 列举出3种常见的操作系统 简述Ubuntu和Linux的关系 ...

  8. 小程序报错:request:fail错误(含https解决方案)(真机预览问题)

    问题描述:域名已经备案,我全部都有,也在后台配置了,但是手机预览,还是请求失败, PC端是可以请求数据出来的 新版开发者工具增加了https检查功能:可使用此功能直接本地避开ssl协议版本检查,但是此 ...

  9. 547. Friend Circles

    There are N students in a class. Some of them are friends, while some are not. Their friendship is t ...

  10. Vuex详解笔记1

    vuex 是什么Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化. 什么是状态?状态这里泛指 ...