Manacher
文章平均质量分 77
ZigZagK
一个蒟蒻。
展开
-
Manacher
作用线性时间解决最长回文子串问题。思想Manacher充分利用了回文的性质,从而达到线性时间。 首先先加一个小优化,就是在每两个字符(包括头尾)之间加没出现的字符(如%),这样所有字符串长度就都是奇数了,方便了很多。 abcde->%a%b%c%d%e% 记录p[i]表示i能向两边推(包括i)的最大距离,如果能求出p,则答案就是max(p)-1了(以i为中点的最长回文为...原创 2017-05-21 18:19:45 · 10782 阅读 · 2 评论 -
【后缀数组+Manacher】BZOJ3676(Apio2014)[回文串]题解
题目概述给出一个字符串,定义一个回文子串的权值为长度 ×\times 出现次数。求最大权值。解题报告求回文子串可以用Manacher,每当找到一个回文子串,就用后缀数组求出其出现次数。因为是求子串出现次数,所以构造 heightheight 再二分就可以 O(log2n)O(log_2n) 查找。本质不同回文子串的个数是 O(n)O(n) 的,所以效率是 O(nlog2n)O(nlog_2n) 。由原创 2017-12-31 23:05:55 · 488 阅读 · 0 评论