
回文自动机
Fat_tu
这个作者很懒,什么都没留下…
展开
-
BZOJ3676:[Apio2014]回文串(回文自动机)
很水的我刚刚打出了听说半年的回文自动机,就开始吹了长为n的串不同的回文子串只有n个 回文自动机有两个初始状态分别表示长度为0和-1的空串 其余状态表示一个回文子串有两个属性 Right集:表示其出现位置 len:子串的长度三个指针 son[x]:在串的两端加一个字母x所形成的状态 fa:son的逆指针 pre:后缀中的最长回文串的状态与sam有些差不多的性质 Rig...原创 2018-03-02 22:06:36 · 240 阅读 · 0 评论 -
BZOJ4480:快乐的jyy(回文自动机)
题面 题意:给出两个串,问所有回文串在两个串出现次数之积之和。应该是回文自动机果题 插完一个串后重置last,再插入另一个串 每个状态对于两个串分别统计Right集的大小 就可以统计答案了#include <iostream>#include <fstream>#include <algorithm>#include <cmath&g...原创 2018-03-04 21:27:53 · 3685 阅读 · 0 评论 -
BZOJ2565:最长双回文串(回文自动机)
题面 题意:给出一个串,求出其最长子串T,使得T是两个回文串拼接而成。我的做法是在建出回文自动机时,求出每个前缀的最长回文后缀。 然后用反串在自动机上跑,求出每个后缀的最长回文前缀 就可以算答案了而串在回文自动机上跑 由于每次转移是增加了两个字符 不仅要判有么有这个儿子 还要判是不是回文#include <iostream>#include <fstre...原创 2018-03-05 15:37:16 · 264 阅读 · 0 评论 -
BZOJ2342:双倍回文(回文自动机+树上差分)
题面 题意:给你一个串,求出它的最长子串 满足该子串有两个长度相等且为偶数的回文串拼接而成该串显然是回文串,就对应回文自动机上的一个状态若某个状态的长度为4的倍数 且存在某个祖先的长度为其一半 则该状态可以贡献答案因为祖先即回文后缀和前缀 长度为其一半的前缀和后缀都是回文串 显然符合题意我的做法是树上差分#include <iostream>#in...原创 2018-03-05 19:20:16 · 221 阅读 · 0 评论