回文树 本文全文引自 "yijan" ,特此鸣谢。 回文树,也就是回文自动机,PAM(Palindrome automaton) 是一个处理回文串的有力工具。然而这个东西比SAM简单多了。。 (它可能比 manacher 要强得多?) 回文自动机有两个根,也就是说其实是有两个树的,一个存储长度为奇数 ...
分类:
编程语言 时间:
2020-01-18 21:23:12
阅读次数:
85
一个字符串如果从左往右读和从右往左读都一样,那么这个字符串是一个回文串。例如:"abcba","abccba"。 蒜头君想通过添加字符把一个非回文字符串变成回文串。例如:"trit",可以添加一个i变成回文串"tirit"。 请你用程序计算出,对于一个给定的字符串,最少需要添加几个字符,才能变成回文 ...
分类:
其他好文 时间:
2020-01-17 23:34:38
阅读次数:
148
鲲之召唤师想要判断截取掉一部分子串的剩余部分是否是回文串,你可以帮帮他吗? 输入格式: 输入在一行内,给出字符串s,在下一行给出即将被截取的子串的位置pos和长度n(字符串位置从0开始计数),其中pos和n保证合法。 输出格式: 如果被截取后的字符串s是回文串,请输出剩余的s。 如果不是,请输出被截 ...
分类:
其他好文 时间:
2020-01-17 20:57:02
阅读次数:
64
题意 翻译 给定一个字符串s,要求它当中的最长回文子串。可以假设s串的长度最大是1000。 样例 分析 虽然LeetCode里给这道题的难度是Medium,但实际上并不简单,我们通过自己思考很难想到最佳解法。 我们先把各种算法放在一边,先从最简单的方法开始。最简单的方法当然是暴力枚举,但是这道题和之 ...
分类:
编程语言 时间:
2020-01-12 11:49:07
阅读次数:
74
1694:回文串时间限制: 1000 ms 内存限制: 262144 KB【题目描述】令F(A,B)表示选择一个串的非空前缀A和串B的非空后缀 使得将串S和串T拼接起来之后是回文串的方案数。现在给定两个串A和B,令Ai表示串A的第i长的后缀,Bi为串B的第i长的前缀。有Q组询问,第i 组询问给定xi ...
分类:
其他好文 时间:
2020-01-03 21:25:02
阅读次数:
100
Description 给定一个 $n \times m$ 的字符矩阵,请求出有多少个子矩阵在重排子矩阵每一行的字符后,使得子矩阵的每行每列都是回文串。 Solution 如果一行能构成回文串,那么最多只能有一种字符出现奇数次。 如果一个矩阵的每一行和每一列都是回文串,那么除了满足上面的要求外,第$ ...
分类:
其他好文 时间:
2020-01-03 10:44:14
阅读次数:
69
【LeetCode 409】最长回文串 给定一个包含大写字母和小写字母的字符串,找到通过这些字母构造成的最长的回文串。 在构造过程中,请注意区分大小写。比如 "Aa" 不能当做一个回文字符串。 注意: 假设字符串的长度不会超过 1010。 示例 1: 输入: "abccccdd" 输出: 7 解题思 ...
分类:
其他好文 时间:
2019-12-30 11:44:43
阅读次数:
77
什么回文算法,我只会背两个板。 「双倍回文」 利用pam的fail树定义:一个节点的fail是他的最长回文后缀 那么在这棵树上dfs,记录沿路经过了哪些长度 那么到达长度为len的回文节点时,如果 len%4==0&&vis[len/2] 则作出贡献 「最长双回文串」 两个回文串拼起来的方案数,可以 ...
分类:
编程语言 时间:
2019-12-26 13:33:32
阅读次数:
86
模板 include<cstdio include<cstring include define reg register define F(i,a,b) for(register int (i)=(a);(i) A.双倍回文 维护trans指针,定义和fail不同在于有长度缩小一半的限制,求法也类 ...
分类:
其他好文 时间:
2019-12-26 12:55:04
阅读次数:
81
最长双回文串 裸的回文自动机,将串reverse再插入一遍即可。 双倍回文 这题可以只维护偶回文串然后疯狂加特判判掉奇串 回文自动机,再多维护一个trans指针,指向trans[x]表示长度小于len[x]/2的最长的回文后缀 trans指针可以从父亲(不是fail)的trans指针求出。 其实还可 ...
分类:
其他好文 时间:
2019-12-25 20:47:39
阅读次数:
119