回文串
Alstein
十年oi一场空,不开longlong见祖宗
展开
-
hdu 6599(回文树+hash)
题目 思路:先建好一棵回文树,然后问题就是如何快速判断一个结点代表的回文串是不是题目要求的回文串,暴力判断就是顺着后缀链接找,然后就T了 emmm。而实际上在插入一个结点时,这个代表的回文串我们可以通过它的长度和现在插入到第几个字符这两个信息判断出它的起始位置,起始 l 知道,末尾 r 知道,长度为len,如果要满足题设要求,即[l,l+(len+1)/2]这个区间的子串也应该是回文串,在这里有个...原创 2020-02-24 17:59:46 · 214 阅读 · 0 评论 -
Manacher算法
Manacher算法是求解一个字符串的最长回文串长度的线性做法;如果暴力求解最长回文串,也就是枚举每个回文串的中心,之后向两边拓展的方法, 复杂度达到了O(nn),而Manacher则将其优化到了O(n); 首先,一个字符串的最长回文串可能有奇数个字符,也可能有偶数个,Manacher算法为了统一,进行了预处理,在每个字符的前面和后面都加上了一个从未在原字符串中出现过的字符,从而使得所有回文串长度...原创 2020-02-18 12:00:28 · 122 阅读 · 0 评论