
回文自动机
吴俊达9812
这个作者很懒,什么都没留下…
展开
-
2019牛客多校第六场 Palindrome Mouse
题意:求每个本质不同的回文串的所有回文子串的总数思路:我们统计一个串的回文子串的个数,可以将这些子串分为两类,一类是父亲节点的所有子串(包含父亲节点),另一种是所有可能的回文后缀。注意着两者有交集,所以需要标记是否访问过。这两种包含所有的情况,原因是一个字符串的所有回文子串可以分为两类,一类是包含最后一个字符的,另一类是不包含最后一个字符的。#include <bits/stdc+...原创 2019-08-04 22:09:29 · 235 阅读 · 0 评论 -
luogu P3649 回文自动机模板
题意:给你一个由小写拉丁字母组成的字符串ss。我们定义ss的一个子串的存在值为这个子串在ss中出现的次数乘以这个子串的长度。对于给你的这个字符串ss,求所有回文子串中的最大存在值。#include <bits/stdc++.h>using namespace std;typedef long long LL;const int maxn = 300...原创 2019-09-19 22:05:29 · 165 阅读 · 0 评论 -
2019 杭电多校第二场 string
题意:找到所有的回文串满足它的前一半也是回文串。思路:回文自动机 + 树上倍增 我们要处理两件事情,第一件是每种回文串出现了多少次。我们回想回文自动机的构造过程,发现fail指针只会由标号大的指向标号小的。这样我们只需要标号从大到小遍历即可处理出每种回文串出现的次数。 第二件是倍增的写法,倍增是不需要初始化的因为我们只需要保证 mn[ x ][ 0 ]...原创 2019-10-10 19:41:41 · 131 阅读 · 0 评论