初识回文自动机

 

•参考资料

  [1]:Palindromic Tree——回文树【处理一类回文串问题的强力工具】

  [2]:初学回文自动机

  [3]:Manacher、回文自动机、学习笔记

•待参考资料

  [1]:回文自动机原理与实现

  [2]:回文自动机

  [3]:回文串问题的克星

 

自学笔记

•回文自动机的功能描述(摘抄自参考资料[1])

  假设我们有一个串 S,S 下标从 0 开始,则回文树能做到如下几点:

  1.求串 S 前缀 0~i 内本质不同回文串的个数(两个串长度不同或者长度相同且至少有一个字符不同便是本质不同)

  2.求串 S 内每一个本质不同回文串出现的次数

  3.求串 S 内回文串的个数(其实就是1和2结合起来)

  4.求以下标 i 结尾的回文串的个数

  解释1.什么是本质不同的回文串?

    例如串 "aba",其包含的本质不同的回文串有 "a","b","aba" 共三个;

  解释2.本质不同的回文串出现的次数?

    还是以串 "aba" 为例,本质不同的回文串 'a' 共出现两次,分别为第一个位置的'a',和最后一个位置的'a'; 

•模板

  回文自动机.cpp

•入门习题集锦

  1.BZOJ3676: [Apio2014]回文串

  2.BZOJ2160: 拉拉队排练

  3.TsinsenA1393. Palisection

  4.Palisection

posted @ 2019-07-30 12:02  HHHyacinth  阅读(94)  评论(0编辑  收藏  举报