
Manacher算法
文章平均质量分 74
PoPoQQQ
这个作者很懒,什么都没留下…
展开
-
BZOJ 3160 万径人踪灭 Manacher算法+快速傅里叶变换
题目大意:给定一个由'a'和'b'构成的字符串,求不连续回文子序列的个数 首先回文一定是将字符串倍增 由于求的是不连续回文子序列的个数 因此我们可以求出总回文子序列的个数,然后减掉连续的 连续的就是回文子串 用Manacher算法可以O(n)求解 不连续的就有些难搞了 首先我们令f[i]表示以i为中心的对称字符对个数 比如s[]=$#a#b#a 那么s[4]='b' f[4]=2 那么原创 2014-12-27 15:20:25 · 5953 阅读 · 3 评论 -
BZOJ 2084 Poi2010 Antisymmetry Manacher算法
题目大意:给定一个长度为n的01串,问有多少个子串满足翻转并取反后和原来一样 定义0=1,0≠0,1≠1,跑Manacher即可 #include #include #include #include #define M 500500 using namespace std; int n; char s[M]; long long Manacher(char str[],int n)原创 2015-03-03 16:37:40 · 1740 阅读 · 0 评论 -
codeforces #30E Tricky and Clever Password KMP+Manacher+二分
题目大意:给定一个字符串SS,要求分成A+prefix+B+middle+C+suffixA+prefix+B+middle+C+suffix6段,满足: |A|=|C||A|=|C| |B||B|为奇数 A+B+CA+B+C为回文串 除BB外所有段长度都可以为00 要求最大化|A|+|B|+|C||A|+|B|+|C|,输出一组方案(|A|=|C|=0|A|=|C|=0时只输出BB)首先原创 2015-05-13 17:50:17 · 3201 阅读 · 0 评论