当时这场比赛在某谷举办结束的时候我瞅了眼题解,然后记住了这道题要回文自动机(
学了之后来还愿(雾
看到区间的前缀 & 后缀,显然建正反串 PAM。
注意到不同回文自动机上不能方便地匹配。
但是由于回文串正反都一样,所以可以考虑建广义 PAM。
广义 PAM 是什么?比广义 SAM 简单多了(
仔细考察建 PAM 的过程,发现直接每次令 las=1 就对了(
然后记录每个前 / 后缀插入得到的状态(即其最长回文后 / 前缀
倍增找到区间内最长回文前 / 后缀,然后在 Fail 树上求 LCA,LCA 的长度的相反数即是答案。
代码:
1 |
|