首页 > TAG信息列表 > P3649

luogu P3649 [APIO2014]回文串

题面传送门 结合manacher的拓展过程以及复杂度证明可以知道,一个序列的本质不同回文串是\(O(n)\)个,并且每次拓展时会出现一个可能本质不同的字符串。 那么就把这个回文串扔到SAM上查出现次数就好了。时间复杂度\(O(n\log n)\) 如果这样那也就不会有这篇题解了。 但是问题在于空间开

【Luogu P3649】[APIO2014]回文串

链接: 洛谷 题目大意: 给你一个由小写拉丁字母组成的字符串 \(s\)。我们定义 \(s\) 的一个子串的存在值为这个子串在 \(s\) 中出现的次数乘以这个子串的长度。 对于给你的这个字符串 \(s\),求所有回文子串中的最大存在值。 正文: 建一棵回文树,每一次插入字符,将当前最长回文后缀加一,统

【luogu P3649】【UOJ #103】回文串 / Palindromes(PAM)

回文串 / Palindromes 题目链接:luogu P3649 / UOJ #103 题目大意 给你一个字符串,要你找一个分数最大的回文子串。 一个子串的分数是它的长度乘它在字符串中出现的次数。 思路 看到回文串想到 Manacher 和 PAM。 然后发现要统计回文串出现次数,自然想到 Manacher 的

P3649-[APIO2014]回文串【PAM】

正题 题目链接:https://www.luogu.com.cn/problem/P3649 题目大意 一个字符串,求最大的回文串长度×出现次数 解题思路 构建出\(\text{PAM}\)然后统计一下每个节点作为后缀的次数,\(fail\)树上上传一下信息就好了,时间复杂度\(O(n)\)。 当然也可以\(\text{SAM}+\text{Manacher}+\)

P3649-[APIO2014]回文串【PAM】

正题 题目链接:https://www.luogu.com.cn/problem/P3649 题目大意 一个字符串,求最大的回文串长度×出现次数 解题思路 构建出 PAM \text{PAM} PAM然后统计一下每个节点作为后缀的次数,

P3649 [APIO2014]回文串(回文自动机)

题目链接 题意:给你一个由小写拉丁字母组成的字符串 s。 我们定义s的一个子串的存在值为这个子串在s中出现的次数乘以这个子串的长度。 对于给你的这个字符串s,求所有回文子串中的最大存在值。 思路:建出回文树,使用类似后缀自动机统计出现次数的方法。 由于回文树的构造过程中,节点本

P3649 [APIO2014]回文串

题意:题目描述 给你一个由小写拉丁字母组成的字符串 sss。我们定义 sss 的一个子串的存在值为这个子串在 sss 中出现的次数乘以这个子串的长度。 对于给你的这个字符串 sss,求所有回文子串中的最大存在值。 题解:乍一看这题目又是出现次数又是子串长度还是回文子串,那不就是我

P3649 [APIO2014]回文串

P3649 [APIO2014]回文串 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 const int maxn = 300010; 5 char s[maxn]; 6 int n; 7 struct PAM { 8 int last; 9 struct Node {10 int cnt, len, fail, son[27]; // cnt为以i为