题目地址: http://acm.hdu.edu.cn/showproblem.php?pid=3613 题目概述: 给出一个字符串s以及每个小写字母的价值,现要求将s分为两个部分,对于每部分,如果是回文串则这个子串的价值为所有字母的价值之和,否则为零,请合理分开这个串使总价值最大。 大致思路: E ...
分类:
其他好文 时间:
2017-03-16 22:11:06
阅读次数:
225
1. 两个字符串的最大公共子序列——构造回文O(MN) 题目:给定一个字符串s,你可以从中删除一些字符,使得剩下的串是一个回文串。如何删除才能使得回文串最长呢?输出需要删除的字符个数。 思路:这道题也就是求原字符串和其反转的最大公共子序列(不是字串,因为可以连续)的长度。 其中,这个长度可以用动态规 ...
分类:
编程语言 时间:
2017-03-14 23:00:40
阅读次数:
236
例如: 可以使用分片符和步长符:来给字符串进行分片和定义步长 结果如下: 这里发现 没有输出1到9的逆序,这时将string[1:9]看成第一个字符串,然后转置就行了 用这个方法判断某个字符串的子串是否为回文串就很有灵性了 ...
分类:
编程语言 时间:
2017-03-13 11:28:59
阅读次数:
152
首先要吐槽LRJ,书上给的算法标签是“有难度,需要结合其他数据结构”,学完Manacher才发现几乎一裸题 题目的意思是问原串中有多少个wwRwwR这样的子串,其中wR表示w的反串 比较容易看出来,wwRwwR本身是一个回文串,wwR也是一个回文串 最裸的暴力是,我们枚举每一个回文串,然后判断这个回 ...
分类:
其他好文 时间:
2017-03-10 22:19:47
阅读次数:
174
马拉车,O(n)求回文串 对整个马拉车算法步骤做个总结: 第一步:将每个原字母用两个特殊字符包围如: aaa --> #a#a#a# abab -->#a#b#a#b 同时可以由这个翻倍的字符串得到一个性质: 如果在此串中,以特殊字符,如'#'为回文中心,那么在原串中回文长度就是偶数,如果是以正常字 ...
分类:
其他好文 时间:
2017-03-09 20:19:55
阅读次数:
214
题目链接:双倍回文 回文自动机第二题。构出回文自动机,那么一个回文串是一个“双倍回文”,当且仅当代表这个串的节点\(u\)顺着\(fail\)指针往上跳,可以找到一个节点\(x\)满足\(2len_x=len_u\)。当然还需要\(len_u\)是\(4\)的倍数。 然后我们把\(fail\)树构出 ...
分类:
其他好文 时间:
2017-03-09 19:50:28
阅读次数:
220
本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作。 本文作者:ljh2000 作者博客:http://www.cnblogs.com/ljh2000-jump/转载请注 ...
分类:
其他好文 时间:
2017-03-09 11:44:06
阅读次数:
222
题目链接:回文串 我终于也会回文自动机辣! 其实吗……我觉得回文自动机(听说这玩意儿叫\(PAM\))还是比较\(simple\)的……至少比\(SAM\)友善多了…… 所谓回文自动机,每个节点就代表一个回文串。回文自动机的每个节点有两个东西,一个是\(next\),一个是\(fail\)。\(ne ...
题意:给定k个长度为n的字符串,每个字符串有一个魅力值ai,在k个字符串中选取字符串组成回文串,使得组成的回文串魅力值最大。 分析: 1、若某字符串不是回文串a,但有与之对称的串b,将串a和串b所有的魅力值分别从大到小排序后,若两者之和大于0,则可以放在回文串的两边。 2、若某字符串是回文串,将其魅 ...
分类:
其他好文 时间:
2017-03-03 23:57:52
阅读次数:
520
Description 考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有回文子串中的最 大出现值。 考虑一个只包含小写拉丁字母的字符串s。我们定义s的一个子串t的“出 现值”为t在s中的出现次数乘以t的长度。请你求出s的所有 ...