![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
回文树
Nightmare丶
登高必自卑,行远必自迩
展开
-
牛客练习赛57 D 回文串
题目描述:给出一个字符串,从中找出两个不相交且长度和最大的非空回文子串,输出长度和。输入描述:一行一个只由小写字母组成的字符串 S 。保证2≤∣S∣≤2×1052\leq |S|\leq 2\times 10^52≤∣S∣≤2×105输出描述:一行一个整数,表示答案。题解:我用的回文自动机,因为感觉写起来比较简单将S串和反串分别建一个回文自动机,然后得到以1-i中最长回文串的长...原创 2020-01-10 20:41:38 · 352 阅读 · 0 评论 -
BZOJ 4480: [Jsoi2013]快乐的jyy(回文自动机)
Description【故事背景】JYY在JSOI有很多很多的好朋友,比如PUPPY,KFC还有PUPPUP。因为有了这么多的好朋友,所以JYY每天都很快乐。某天,JYY发现好朋友之间关系的好坏和名字有很大的关系,比如PUPPY和PUPPUP的关系就特别好,但是和KFC的关系就很一般。JYY苦思冥想终于发现了其中的规律,现在JYY想知道两个朋友之间关系的好坏,你能帮助JYY么?【问题...原创 2020-01-10 01:28:14 · 210 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 I.Skr(回文自动机)
题意:给你一个字符串S,让你求出S中所有本质不同的回文串,然后把这些回文串转换成数字后相加的和例如:1121 共有4个本质不同的回文串: 1 + 11 + 121 + 2 = 135题解:预处理出每个前缀形成的数字的值,然后根据回文自动机的性质,很显然在i点有一个长度为len的回文串,那么这个区间对应的数即为:起点为i的前缀表示数字-起点为i-len的前缀表示的数字,就表示这个区间表...原创 2019-12-05 21:32:16 · 125 阅读 · 0 评论 -
2018 南京区域赛 M (回文自动机+exkmp)
题目链接 2018 南京区域赛 M题意:给你两个字符串S和T,询问由多少对三元组(i,j,k)使得S的子串s[i]~s[j]和T的长度为k的前缀拼接起来是一个回文串,且S对应的子串要比T对应的前缀长题解:首先我们知道,S对应的子串比T对应的前缀长,那么说明S[i] ~ s[i+k]反转后一定和T的前缀相等,那么中间的s[i+k+1] ~ s[j]必定对应的就是回文串。所以我们可以把S反转后...原创 2019-12-05 15:21:56 · 237 阅读 · 0 评论 -
BZOJ 2084: [Poi2010]Antisymmetry
Description对于一个01字符串,如果将这个字符串0和1取反后,再将整个串反过来和原串一样,就称作“反对称”字符串。比如00001111和010101就是反对称的,1001就不是。现在给出一个长度为N的01字符串,求它有多少个子串是反对称的。Input第一行一个正整数N (N <= 500,000)。第二行一个长度为N的01字符串。题解:考虑回文自动机,由于反对称字符串...原创 2019-11-16 20:32:36 · 172 阅读 · 0 评论 -
Codeforces 961 F. k-substrings
problemYou are given a string s consisting of n lowercase Latin letters.Let’s denote kkk-substring of s as a string subsk = sksk+1..sn+1− ksubs_k = s_ks_k+_1..s_n+_1-_ ksubsk = sksk+1..sn+1− ...原创 2019-11-11 00:08:00 · 247 阅读 · 0 评论 -
HDU - 5658 CA Loves Palindromic(回文自动机)
题意:求区间内所有本质不同的回文串的数量题解:水题,枚举后缀记录即可ACACAC代码:#include<bits/stdc++.h>using namespace std;typedef long long LL;typedef pair<int,int> pii;const int MAXN = 1050;const int INF = 0X3f3f3...原创 2019-11-02 16:08:54 · 138 阅读 · 0 评论 -
BZOJ [2160: 拉拉队排练]
Description艾利斯顿商学院篮球队要参加一年一度的市篮球比赛了。拉拉队是篮球比赛的一个看点,好的拉拉队往往能帮助球队增加士气,赢得最终的比赛。所以作为拉拉队队长的楚雨荨同学知道,帮助篮球队训练好拉拉队有多么的重要。拉拉队的选拔工作已经结束,在雨荨和校长的挑选下,n位集优秀的身材、舞技于一体的美女从众多报名的女生中脱颖而出。这些女生将随着篮球队的小伙子们一起,和对手抗衡,为艾利斯顿篮球队加...原创 2019-11-01 22:15:52 · 166 阅读 · 0 评论 -
BZOJ [3676: [Apio2014]回文串]
题意:考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最大出现值。题解:回文自动机水题,注意插入字符时求出的cnt数组并不是最后的出现次数,而应该还要加上以它为后缀的回文,也就是所有fail指向它的节点的贡献。ACACAC代码:#include<bits/stdc++.h>using na...原创 2019-11-01 20:38:59 · 120 阅读 · 0 评论 -
BZOJ [2565: 最长双回文串]
题意:给出一个字符串SSS,求SSS的最长双回文子串TTT,即可将TTT分为两部分XXX,YYY,(∣X∣,∣Y∣≥1)(|X|,|Y|≥1)(∣X∣,∣Y∣≥1) 且XXX和YYY都是回文串。题解:我们知道len[i]len[i]len[i]表示以iii这个字符结束的最长回文串的长度,然后我们只需要建立两个回文自动机(一个正向一个反向)就可以啦!详细细节见代码!ACACAC代码:#i...原创 2019-11-01 20:21:56 · 125 阅读 · 0 评论 -
回文自动机/回文树
回文自动机结构回文树大概长这样和其它自动机(但是它却叫「回文树」)类似的,它也是由转移边和 fail 指针组成,每个节点都可以代表所有对应它的回文子串。因为回文串长度分为奇数和偶数,我们可以像 manacher 那样加入一个不在字符集中的字符(如 ‘#’)作为分隔符来将所有回文串的长度都变为奇数,但是这样过于麻烦了。有没有更好的办法呢?答案自然是有。更好的办法就是建两棵树,一棵树中的节...转载 2019-10-27 22:08:49 · 230 阅读 · 0 评论 -
P3649 [APIO2014]回文串
题意:题目描述给你一个由小写拉丁字母组成的字符串 sss。我们定义 sss 的一个子串的存在值为这个子串在 sss 中出现的次数乘以这个子串的长度。对于给你的这个字符串 sss,求所有回文子串中的最大存在值。题解:乍一看这题目又是出现次数又是子串长度还是回文子串,那不就是我们回文树(回文自动机)里面的东西吗?于是我们就可以快乐的套用模板了。但唯一要注意的就是我们在插入字符时求出的cnt是以...原创 2019-10-27 19:54:31 · 128 阅读 · 0 评论 -
P5555 秩序魔咒
题意:给你两个字符串,求出这两个字符串的最长公共回文子串长度和个数题解:我们可以对这两个字符串分别建回文树,然后同时进行dfs,走相同的转移边,得到的回文串显然是相同的,由于回文串的长度可以为奇数也可以为偶数,所以我们需要对奇根节点和偶根节点进行dfs,就可以找到最长公共回文子串长度了,至于个数,由于在回文树中,每个回文串一定是不同的,所以也可以统计出不同最长公共回文子串的个数#include...原创 2019-10-27 19:34:05 · 425 阅读 · 0 评论 -
P5496 【模板】回文自动机(PAM)
题目描述给定一个字符串 sss。保证每个字符为小写字母。对于 ss 的每个位置,请求出以该位置结尾的回文子串个数。这个字符串被进行了加密,除了第一个字符,其他字符都需要通过上一个位置的答案来解密。具体地,若第 i(i≥1)i(i\geq 1)i(i≥1) 个位置的答案是 kkk,第 i+1i+1i+1 个字符读入时的ASCIIASCIIASCII 码为 ccc,则第 i+1i+1i+1 个字...原创 2019-10-27 19:22:35 · 160 阅读 · 0 评论