回文自动机小记

构建

口胡一下过程:

  • fail 边指向自己的最长回文后缀(偶根指向奇根)。

  • 定理:每添加一个字符,至多新增一个新的本质不同的回文串,且是所有 回后缀中最长的。

    由此得出推论:本质不同的回文子串(回文自动机的点数)不超过 |S|

  • 暴力跳终止链,找到第一个左侧有 x 的回文后缀 v

    维护转移边,若 v 已经有 x 出边,找到该节点 d,本次终止链末尾即为 d。否则,新建一个点 u,且 lenu=lenv+2

    维护 fail 边,找到下一个旧的回文后缀 v 满足左边有一个 x,此时必有 x 出边,找到该节点 u,则 failu=u

  • 时间复杂度均摊 O(n)

posted @   xishanmeigao  阅读(10)  评论(0编辑  收藏  举报
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 【杂谈】分布式事务——高大上的无用知识?
历史上的今天:
2023-08-25 博弈论小记
2023-08-25 欧拉路径回顾
2023-08-25 2023.8.25测试
点击右上角即可分享
微信分享提示