随笔分类 - 字符串算法 -- Manacher
摘要:题面: BZOJ传送门 洛谷传送门 题目要求我们求一个序列的回文子序列数量 可以用$FFT$搞定 对于每种字符单独处理,以小写字母$a$为例 把$a$所在的所有位置设为$1$,反之设为$0$ 卷积一下,会发现位置i卷出来的积就可能作为以$i/2$为中心的回文子序列的一个位置,设这个值为$x$ 那么以
阅读全文
摘要:题目大意: 给你一个字符串,求其中回文子串的长度*出现次数的最大值 明明是PAM裸题我干嘛要用SAM做 回文子串有一个神奇的性质,一个字符串本质不同的回文子串个数是$O(n)$级别的 用$manacher$的思想分析一下,$maxright$指针向右扩展才会产生新的回文串 其它的回文串都根据之前求得
阅读全文
摘要:题目大意:给你一个串,求这个串被最少数量的回文串拼起来的次数,两个回文串可以重叠拼接,但必须保证重叠的部分完全相同 先用$Manacher$预处理出最长回文半径$p_{i}$。 再用最长双回文串的方法,处理出数组$e_{i}$,以$i$为开头最长回文串结尾的位置 在已经被遍历到的位置中,选择$e_{
阅读全文
摘要:题目大意:给你一个字符串每个位置和相邻两个位置为回文中心的最长回文串长度,让你构造一个合法的字典序最小的字符串 挺有意思的构造题 首先按照$Manacher$的思想还原$p$数组 定义$f_{ij}$表示$i$位置不能放$j$这个字符 我们逆模拟$manacher$的构造过程,如果$i+p_{i}>
阅读全文
摘要:题目大意:一个双回文串被定义为,这个串在某个位置断开,前面一段和后面一段都是回文串,求最长的双回文串 并没有想出怎么线性求出$R_{i}$数组= =,只想了个线段树,但竟然要区间修改等差数列再维护最大值,我并不会,一看就不是正解 正解是先用$Manacher$求出以$i$为回文中心,最长的回文半径$
阅读全文

浙公网安备 33010602011771号