
Manacher
无名蒟蒻
苟利国家生死以,岂因祸福避趋之
展开
-
HDU 3613 Manacher应用
题意:上面的数字是26个字母的价值,接下来26个英文字母组成的字符串,将它分成两份,如果分后的串是回文串,则这个串的价值是这个串的所有字母的和,如果不是回文串则这个串价值为0。求最大价值和。看到回文串,第一时间可以想到manacher算法。只要得到了以第ii位为中心的最长回文串长度的一半ansians_i,便不难解决此题。我们可以枚举切割点ii,容易求出左子串的中心lmidlmid和右子串的中心rm原创 2016-08-13 09:48:17 · 259 阅读 · 0 评论 -
manacher算法(寻找最长回文)
考虑这样的一个最长回文子串问题: 给定一个长度为nn的字符串SS 现在要从中找出一个回文的子串TT 字符串AA是回文的,当且仅当AA反转后的A′A’和AA完全相等。 问TT可能的最大长度。 容易想到直观的暴力算法,枚举所有的子串并逐一判断,时间复杂度为Θ(n3)\Theta(n^3)。但可以注意到,回文串必然有一个“中心”,且整个串是关于这个中心左右对称的,因此一个长度大于2的回文串中必有一个更短的原创 2016-08-07 11:47:33 · 1390 阅读 · 0 评论