点击打开链接
题意:上面的数字是26个字母的价值,接下来26个英文字母组成的字符串,将它分成两份,如果分后的串是回文串,则这个串的价值是这个串的所有字母的和,如果不是回文串则这个串价值为0
思路:简单的回文串的变形,先将到每个位置的价值预处理出来然后将字符串跑一边马拉车,我枚举切每个位置的价值和,如现在枚举的是切第三个的位置,则判断一下前三个位置能否形成回文串,那么我们只用判断第二个位置的le...
分类:
其他好文 时间:
2016-04-19 12:14:50
阅读次数:
167
之前做过类似的题,只是理解了,还没达到驾轻就熟,想到即敲出的地步,所以再练一次。
顺带将Manacher算法思想解释一遍,加强印象,也算作分享吧。
Manacher我们用f(x)表示以x位置为中心的回文串的长度
j相对i的对应位置是j’
那么f(j)与f(j’)和f(i)有什么关系呢。
先看第一张图,下面那条横杠表示f(i),那么,既然j’与j相对应,j’的回文串长度已经求出,那么j...
分类:
其他好文 时间:
2016-04-10 06:53:48
阅读次数:
137
回文树在处理回文方面真的比manacher要好用得多。。。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #define REP(i,a,b) for(int i ...
分类:
其他好文 时间:
2016-04-07 07:02:20
阅读次数:
191
水题。枚举中间,暴力算最远的。也可以用(Manacher) ...
分类:
其他好文 时间:
2016-04-06 09:24:33
阅读次数:
143
最长回文子串问题—Manacher算法
最长回文串问题是一个经典的算法题。
0. 问题定义
最长回文子串问题:给定一个字符串,求它的最长回文子串长度。
如果一个字符串正着读和反着读是一样的,那它就是回文串。下面是一些回文串的实例:
12321 a aba abba aaaa tattarrattat(牛津英语词典中最长的回文单词)...
分类:
其他好文 时间:
2016-04-04 15:01:02
阅读次数:
176
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=3676 【题意】 给定一个字符串,定义一个串的权值为长度*出现次数,求最大权的回文子串。 【思路】 马拉车求出本质不同的回文子串。 对于一个回文子串,在SAM中用倍增法在O(logn)的时 ...
【题意】 你可以产生一个回文串,也可以将两个串合并成一个串,问产生目标串需要的最少合并次数。 【思路】 Manacher求出每个位置可以向两边延伸的最长回文串。 则题目转化为有若干条线段,求最少的线段将[1..n]覆盖。贪心DP皆可上,DP需要BIT优化一下。 【代码】 ...
分类:
其他好文 时间:
2016-04-03 10:14:36
阅读次数:
132
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=2342 【题意】 求出形如w wR w wR的最长连续子串。 【思路】 用manacher算法计算出p[],表示以i与i+1为中心的最长回文字串长度/2 枚举第一个wR的结束位置x,当且仅 ...
分类:
其他好文 时间:
2016-04-03 00:13:36
阅读次数:
242
原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=3068 Problem Description 给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度.回文就是正反读都是一样的字符串,如aba, abba等 Input 输 ...
分类:
其他好文 时间:
2016-04-02 14:51:03
阅读次数:
137