
Manacher
Manacher
ハルカナソラヘ
果てなく続いて行く、
生きとし生けるものは。
抗うことの出来ない、
散り行く因縁抱いて。
記憶の隙間で ただ微笑む瞳が 儚く零れた、
運命さえ 光で照らして行く。
闇を離した この手を繋ぐ、
穢れなき宵 咲き誇るように。
夢から覚めた 昨日の声を、
ずっと聞かせて 独り歩いて行く。
展开
-
20200901 专题:回文自动机
总览:真·整个人都自动机了因为有奇偶回文串,所以有两个根,奇根偶根每一个节点代表一个回文串的后一半维护 len,代表回文串的长度维护 fail,类似 ACM,代表最长回文后缀注意初始化模板:const int A=5e5+5;char s[A];int len;int tot=1,las=0;//总结点数,末字符所在回文串struct PAM{ int ch[26]; int fail,len;}tr[A];inline int find(int x,int w){ wh原创 2020-09-01 19:52:18 · 210 阅读 · 0 评论 -
20200806 专题:manacher
总览:O(n)O(n)O(n) 找回文串Manacher算法本质上也是基于暴力匹配的方法,只不过做了一点简单的预处理,且在扩展时提供了加速Manacher 对字符串的预处理:在字符间添加符号,将偶回文串变成奇回文串在字符串首尾添加字符,防止越界基本概念:回文半径和回文直径:回文半径是包括回文中心在内的回文子串的一半的长度,回文直径则是回文半径的 2 倍减 **1 。最右回文边界:在遍历字符串时,每个字符遍历出的最长回文子串都会有个右边界,而R则是所有已知右边界中最靠右的位置,也就是说最右原创 2020-08-06 14:54:22 · 133 阅读 · 0 评论