题目大意:有 N 个字符串,所有的字符串长度不超过 200W 任意俩俩字符串可以自由组合,问组合的字符串是回文串的个数有多少个?分析:这是一个相当猥琐的字符串处理,因为没有说单个的字符串最少多长,所以很可能会有这样的情况,200w个字符串,每个字符串长度1,或者1个串,这个串的长度是100w, 为了...
分类:
其他好文 时间:
2015-08-21 20:58:12
阅读次数:
142
题目大意:有一个串(全部由小写字母组成),现在要把它分成两部分,如果分开后的部分是回文串就计算出来它的价值总和,如果不是回文的那么价值就是0,最多能得到的最大价值。分析:首先的明白这个最大价值有可能是负数,比如下面:-1 -1 -1..... aaa这样的情况不管怎么分,分出来的串都是回文串,所以得...
分类:
其他好文 时间:
2015-08-21 14:58:43
阅读次数:
152
欢迎关注__Xiong的博客: http://blog.csdn.net/acmore_xiong?viewmode=list
最长回文
Time Limit: 4000/2000 MS (Java/Others) Memory L...
分类:
其他好文 时间:
2015-08-21 07:10:13
阅读次数:
132
题意:字母表的26个字母都有一个价值,给定一个字符串,将该字符串切成两份,对于每一份,如果是回文串,就获得该子串的字母价值之和,否则该子串的价值为0。求出将字符串切成两份后能够获得的最大价值。
做法:先用Manacher算法求出以每个字母为中心的回文串的长度,并计算该字符串的前缀价值和。然后枚举切割点,得到两份子串。这样就可以知道每个子串的中心点,然后检查以该子串的中心点作为中心点的回文串的长度...
分类:
编程语言 时间:
2015-08-20 13:14:36
阅读次数:
132
1 void manacher(){ 2 int res = 0, id = 0; 3 for(int i = 1; i i){ 5 p[i] = min(p[2 * id - i], res - i); 6 } 7 els...
分类:
其他好文 时间:
2015-08-18 01:15:05
阅读次数:
124
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5371
题目大意:给一串数字,在子串中找到“1-2-1”的形式,其中1和2 是回文串,找出最长的那一串。
思路:利用manacher算法得出最长序列。观察子串形式,1和2是回文串,其实2和后面那个1也是回文串。
在之前我们已经通过manacher算法得到了每个数字所能延伸的长度,所以我们只要枚举第...
分类:
编程语言 时间:
2015-08-17 21:53:34
阅读次数:
150
求出一个连续子序列,这个子序列由三部分ABC构成,其中AB是回文串,A和C相同,也就是BC也是回文串。求这样一个最长的子序列。Manacher算法是在所有两个相邻数字之间插入一个特殊的数字,比如-1,Manacher算法跑完之后,就计算出每个数字为中心的回文子序列的最大长度由题意可以知道,AB和BC...
分类:
其他好文 时间:
2015-08-15 18:06:32
阅读次数:
115
Manacher算法
【题目】
给定一个字符串str,返回str中的最长回文子串的长度。
【举例】
str=“123”。其中的最长回文子串“1”或者“2”或者“3”,所以返回1。
str=“abc1234321ab”。其中的最长回文子串“1234321”,所以返回7。
【进阶题目】
给定一个字符串str,想通过添加字符的方式使得str整体都变成回文字符串,但要求只能在str的末尾添加...
分类:
编程语言 时间:
2015-08-15 16:39:59
阅读次数:
146
O(n)回文子串(Manacher)算法转自:http://www.cnblogs.com/biyeymyhjob/archive/2012/10/04/2711527.html资料来源网络 参见:http://www.felix021.com/blog/read.php?2040问题描述:输入一个...
分类:
编程语言 时间:
2015-08-13 17:57:23
阅读次数:
132
最长回文Time Limit: 4000/2000 MS (Java/Others)Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 11553Accepted Submission(s): 4191Problem Descr...
分类:
其他好文 时间:
2015-08-13 17:15:50
阅读次数:
124