随笔分类 - 字符串——manacher
摘要:"传送门" $Maximum\ Remaining$ 对于两个数$a,b$,如果$a=b$没贡献,所以不妨假设$a define R register define fp(i,a,b) for(R int i=(a),I=(b)+1;iI; i) define go(u) for(int i=hea
阅读全文
摘要:"传送门" 对$A$、$B$串各跑一遍$manacher$,求出第$1$、$2$类扭动回文串的最大长度。 考虑第三类的扭动回文串$S(i,j,k)$,一定可以表示为$A(i,l)+A(l+1,j)+B(j,k)$或$A(i,j)+B(j,l)+B(l+1,k)$,其中,第一段与第三段对称(第一段正着
阅读全文
摘要:传送门 题目所求为所有的不连续回文子序列个数,可以转化为回文子序列数-回文子串数 回文子串manacher跑一跑就行了,考虑怎么求回文子序列数 我们考虑,如果$S_i$是回文子序列的对称中心,那么只要$S_{i-j}$和$S_{i+j}$相等,我们就多了一种选择 设共有$x$组相等的,那么以$S_i
阅读全文
摘要:前言 Manacher(也叫马拉车)是一种用于在线性时间内找出字符串中最长回文子串的算法 算法 一般的查找回文串的算法是枚举中心,然后往两侧拓展,看最多拓展出多远。最坏情况下$O(n^2)$ 然而Manacher能够充分利用回文的性质 首先,回文分为奇回文(比如$aba$)和偶回文(比如$abba$
阅读全文

浙公网安备 33010602011771号