【算法学习】manacher
2024-08-24 08:22:52
manacher太水了。
这篇blog不能称作算法学习,因为根本没有介绍……
就贴个模板,太简单了……
#include<cstdio>
#include<cstring>
#define MAXN 1000005
char str[MAXN];
int n,str2[MAXN<<],p[MAXN<<];
int main(){
scanf("%s",str+); n=strlen(str+);
memset(str2,-,sizeof str2);
for(int i=;i<=n;++i)
str2[i<<]=str[i];
n=n<<|;
int mpi=; p[]=; p[]=;
for(int i=,j;i<=n;++i){
j=(mpi<<)-i;
if(j-p[j]<=mpi-p[mpi]){
p[i]=mpi+p[mpi]-i;
while(<i-p[i]&&i+p[i]<=n&&str2[i-p[i]]==str2[i+p[i]]) ++p[i];
mpi=i;
}
else p[i]=p[j];
}
for(int i=;i<=n;++i) printf("%d ",str2[i]); puts("");
for(int i=;i<=n;++i) printf("%d ",p[i]); puts("");
return ;
}
最新文章
- bzoj 1061 志愿者招募 有上下界费用流做法
- JS json的使用
- poj2486Apple Tree[树形背包!!!]
- editplus如何配置php编译环境?
- java中重载与重写的区别
- Springmvc常用注解
- \boot 空间不足解决方法
- Scrum Meeting---Ten(2015-11-5)
- MyBatis里字段到枚举类型的转换/映射
- Django之验证码 + session 认证
- python - 执行父类中的方法
- ThinkPHP - 事务操作
- atitit.java方法属性赋值and BeanUtils 1.6.1 .copyProperty的bug
- JAVA基础——方法笔记
- Python/模块与包之模块
- python常见模块之time,datetime模块
- 乙方渗透测试之Fuzz爆破
- 提高在word编辑公式的效率,及快捷键、对齐、编号问题
- HttpSimpleClient连接服务器
- 正则表达式验证input文本框