回文树 回文自动机 PAM 入门学习详解

本文详细介绍了回文树和回文自动机(PAM)的概念,阐述了它们如何构造,以及在处理回文串问题时的重要思考。通过分析回文串的性质,解释了PAM中fail指针的特殊处理方式,并提供了相关模板题以供实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

回文树 回文自动机 PAM

是什么

  • 顾名思义,回文自动机是一种自动机,其中的每个状态表示的是一个回文串,可以用来解决与回文串有关的许多问题。
  • 和其他自动机一样,它也有转移边(树边)和失配指针(fail)。其中转移边表示的是在原回文串的两边各加一个字符,得到长度加 2 2 2的新回文串;fail指针则指向该回文串的最长回文后缀。
  • 和其他自动机有所不同,它有两个根节点, 分别代表长度为偶数的串和长度为奇数的串。它们的长度分别为 0 0 0 − 1 -1 1(注意不是 1 1 1,为了添加 2 2 2的长度可以得到长为 1 1 1的回文串),以下分别称为奇根偶根
  • 值得注意的是,偶根的fail指针指向的是奇根,而奇根的fail并不需在意,它的儿子中总会有长为 1 1 1的回文串,因而不可能会失配。
  • 它大概是这样:

在这里插入图片描述

如何构造

  • 首先初始化两个根节点。
	a[0].len = 0, a[1]</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值