博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
对manacher的一点感性理解
阅读量:6848 次
发布时间:2019-06-26

本文共 537 字,大约阅读时间需要 1 分钟。

因为总是忘掉板子所以这里贴一下我个人对\(manacher\)的感性理解. 可能不够严谨求轻喷\(QwQ\)

char ch = getchar (); s[0] = s[1] = '#';while (isalpha (ch)) {    n = n + 2;    s[n] = ch;    s[n + 1] = '#';    ch = getchar ();}n = n + 1;

这一部分是把原先连续的字符串拆开. 例如\("abcd"\)这个串, 经过处理会变成\("\#a\#b\#c\#d\#"\)而便于处理. 对应的答案只要求\(Expand - 1\)就可以了

if (i < rt) _exp[i] = min (_exp (mid * 2 - i), rt - i);

这一句的作用是 : 利用回文串的对偶性, 处理\(exp\)的值. 这里\(mid\)\(rt\)代表的是上一个较大的回文串.

while (s[i + _exp[i]] == s[i - _exp[i]]) ++_exp[i];

暴力\(expand\).没啥说的

转载于:https://www.cnblogs.com/maomao9173/p/10406494.html

你可能感兴趣的文章
2015年下半年系统集成项目管理工程师培训感想
查看>>
命令模式
查看>>
Python精简笔记-[1] 从安装到编辑器的使用
查看>>
VMwareESX/ESXi 精简置备(thin)与厚置备(thick)虚拟机磁盘之间转换
查看>>
迭代器模式
查看>>
github 仓库重命名(改名)
查看>>
web前端性能优化
查看>>
为基恩士 TM-3000 激光测量仪定制的测量管理系统
查看>>
java反射机制+工厂模式+配置文件----->在谈到spring配置文件
查看>>
linux 操作系统进程系列
查看>>
持续化集成工具jenkins环境搭建及配置
查看>>
CDN架构以及原理分析
查看>>
2016年3月7日作业
查看>>
HDFS DataBlockScanner
查看>>
MVC模式基本理解
查看>>
开源 java CMS - FreeCMS2.8会员登录
查看>>
ps学习笔记 11,12 路径,色彩调整
查看>>
MDaemonV15 版本新特性介绍
查看>>
【Guava】基于guava的重试组件Guava-Retryer
查看>>
第三阶段计划
查看>>