
manacher
_beginend
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
bzoj 2803: [Poi2012]Prefixuffix manachar
题意 对于两个串S1、S2,如果能够将S1的一个后缀移动到开头后变成S2,就称S1和S2循环相同。例如串ababba和串abbaab是循环相同的。 给出一个长度为n的串S,求满足下面条件的最大的L: 1. L<=n/2 2. S的L前缀和S的L后缀是循环相同的。 n<=1000000n<=1000000n...原创 2018-03-26 12:55:16 · 267 阅读 · 0 评论 -
bzoj 4755: [Jsoi2016]扭动的回文串 manachar+hash+二分
题意 JYY有两个长度均为N的字符串A和B。 一个“扭动字符串S(i,j,k)由A中的第i个字符到第j个字符组成的子串与B中的第j个字符到第k个字符组成的子串拼接而成。 比如,若A=’XYZ’,B=’UVW’,则扭动字符串S(1,2,3)=’XYVW’。 JYY定义一个“扭动的回文串”为如下情况中的一个: 1.A中的一个回文串; 2.B中的一个回文串; 3.或者某一个回文的扭动字符串...原创 2018-03-29 21:55:38 · 332 阅读 · 0 评论 -
bzoj 3160: 万径人踪灭 manachar+快速傅里叶变换
题意给你一个长度为n且仅含a和b的字符串,问有多少个子序列满足:不连续,下标沿某个点对称,且为回文串。 n<=100000分析我们可以先不管第一个条件,然后再跑一遍manachar求出所有连续的就好了。 把串两两之间随便插入一个字符,枚举对称轴,设为x,现在就是要求出所有的f[x]表示有多少对(i,j)满足i < j且i和j沿x对称且s[i]不等于s[j]。 考虑如何求f[x]。 不难注意到原创 2017-11-07 21:17:43 · 312 阅读 · 0 评论 -
bzoj 2565: 最长双回文串 manachar
题意顺序和逆序读起来完全一样的串叫做回文串。比如acbca是回文串,而abc不是(abc的顺序为“abc”,逆序为“cba”,不相同)。 输入长度为n的串S,求S的最长双回文子串T,即可将T分为两部分X,Y,(|X|,|Y|≥1)且X和Y都是回文串。 2≤|S|≤10^5分析直接用manachar求出f[i]表示以i为结尾的最长回文串,g[i]表示以i为开头的最长回文串,然后扫一遍即可。代码#i原创 2017-10-20 21:18:49 · 382 阅读 · 0 评论 -
bzoj 3676: [Apio2014]回文串 manachar+后缀自动机+倍增(回文树)
题意考虑一个只包含小写字母的字符串s。我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最大出现值。 n<=300000分析因为自己对马拉车的性质不太熟悉,所以一开始没做出来。 考虑在跑马拉车算法的时候,所有本质不同的回文串必然包含在所有能使mx增加的回文串内,也就是最多只有O(n)个。那么我们只要求出后缀自动机,然后每找到一个回文串就扔进后缀自原创 2017-04-09 20:47:28 · 497 阅读 · 0 评论 -
bzoj 3790: 神奇项链 manachar+dp+树状数组
题意母亲节就要到了,小 H 准备送给她一个特殊的项链。这个项链可以看作一个用小写字 母组成的字符串,每个小写字母表示一种颜色。为了制作这个项链,小 H 购买了两个机器。第一个机器可以生成所有形式的回文串,第二个机器可以把两个回文串连接起来,而且第二个机器还有一个特殊的性质:假如一个字符串的后缀和一个字符串的前缀是完全相同的,那么可以将这个重复部分重叠。例如:aba和aca连接起来,可以生成串aba原创 2017-05-31 19:50:04 · 436 阅读 · 0 评论 -
bzoj 3325: [Scoi2013]密码 manachar+贪心
题意 Fish是一条生活在海里的鱼。有一天他很无聊,就到处去寻宝。他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进。通过翻阅古籍,Fish 得知了这个密码的相关信息: 1. 该密码的长度为N。 2. 密码仅含小写字母。 3. 以每一个字符为中心的最长回文串长度。 4. 以每两个相邻字符的间隙为中心的最长回文串长度。 很快Fish 发现可能有无数种满足条件的密码。经过...原创 2018-03-27 20:15:06 · 321 阅读 · 0 评论