
回文串(Manacher/回文树)
文章平均质量分 57
处理回文串的工具
小衣同学
No Saturday , no Sunday , no holiday .
展开
-
辽宁省实验OJ 235. Sting(manacher+trie)
扩展到不能扩展时,在trie树的叶子上打个异或标记,代表到根的这一条链都需要异或这个标记。manacher初始对半径取min的时候,先倍增当前回文串定位到树上这个深度的位置。由于长串肯定比短串后建,最后倒序往上合并异或标记即可。manacher,对回文这一半的串建个trie树,然后不断往外扩展时在trie树上扩展,辽宁省实验oj官方题解。原创 2024-05-27 10:42:34 · 321 阅读 · 0 评论 -
AtCoder Beginner Contest 349 G. Palindrome Construction(魔改manacher+并查集)
求是否存在正数数字串,满足每个位置的最长回文半径是s[i](此时要么s[i]+1越界,要么不相等)对于最长回文半径是s[i]的情况,需要钦定i-s[i]-1和i+s[i]+1字符集不相等,然后先判互斥关系,如果互斥关系的两个点已经在同一集合了,显然无解。这个值我们保留,如果这个值已经超过了输入中给定的值,显然无解。否则,从前到后贪心,填满足互斥关系条件下的字典序最小即可。给定每个位置的最长回文半径s,第i个数是s[i],后面扩展的时候,需要在串上满足对应位置相等,dreammoon讲解。原创 2024-04-15 01:05:24 · 514 阅读 · 0 评论 -
Codeforces Round 873 (Div. 1) C. Palindrome Partition(manacher马拉车+dp+栈)
除了在之前的beatutiful串后面续上这个最短偶回文串,构成新的beautiful串以外,定义:若一个串要么是偶回文串,要么由若干个偶回文串拼接而成,则这个串是beautiful的。x到i的距离为i-x+1,将其记为len,则偶回文串长度即为2*len,为最短的。拼接的时候,只考虑拼接以i为右端点的最短的偶回文串,不然可能会计数重复。由于只需要偶回文串的长度,所以无需在其中补#号求出奇回文串的部分。1. 如果x+r[x]不能覆盖i,则也不能覆盖i+1,把x干掉。如何求这个覆盖i的最短的回文串的长度。原创 2023-07-03 01:58:19 · 283 阅读 · 0 评论 -
洛谷 P4555 最长双回文串(manacher回文串)
题目输入长度为n(2<=n<=1e5)的串S,求S的最长双回文子串T,即可将T分为两部分X,Y(|X|,|Y|≥1),且X和Y都是回文串。思路来源https://www.luogu.com.cn/blog/five20/solution-p4555题解1如果两个完整的回文串有交,显然把其中的一个降长度之后,能形成一个XY型双回文串所以可以考虑枚举后面的最长单回文串,设其对应的开头的下标是i-p[i],则对于i-p[i]-1来说,需要找到以i-p[i]-1结尾的,最原创 2021-07-07 15:51:39 · 494 阅读 · 0 评论 -
ACM-ICPC 2018 南京赛区网络预赛 I.Skr(Manacher马拉车+Hash哈希/回文树)
题目给一个只由数字构成的字符串s(|s|<=2e6)求s的所有本质不同字符串之和%1e9+7,每一个不同字符串的贡献为其十进制下的值思路来源https://blog.csdn.net/sodacoco/article/details/83240305(Hash相关)https://blog.csdn.net/dllpXFire/article/details/8231...原创 2019-03-28 21:49:45 · 397 阅读 · 1 评论