前些天在研究字符串,这里记录一些小技巧以便复习。 1.KMP求最短重复子串 令leng=len-next[len] 若要求完全覆盖,则(len%leng==0)?leng:len; 若不要求完全覆盖,则输出leng 2.Exkmp如何构造extend[]数组 可以发现问题最终转化为求t[i]后缀与t ...
分类:
其他好文 时间:
2017-09-23 17:26:16
阅读次数:
213
Brutal Force: O(n^2) Manacher: O(n) ...
分类:
其他好文 时间:
2017-09-21 15:53:52
阅读次数:
109
【BZOJ3325】[Scoi2013]密码 Description Fish是一条生活在海里的鱼。有一天他很无聊,就到处去寻宝。他找到了位于海底深处的宫殿,但是一扇带有密码锁的大门却阻止了他的前进。通过翻阅古籍,Fish 得知了这个密码的相关信息: 1. 该密码的长度为N。 2. 密码仅含小写字母 ...
分类:
其他好文 时间:
2017-09-20 11:57:23
阅读次数:
174
题目描述 给出一个只包含小写字母的字符串的长度、以每一个字符为中心的最长回文串长度、以及以每两个相邻字符的间隙为中心的最长回文串长度,求满足条件的字典序最小的字符串。 给出一个只包含小写字母的字符串的长度、以每一个字符为中心的最长回文串长度、以及以每两个相邻字符的间隙为中心的最长回文串长度,求满足条 ...
分类:
其他好文 时间:
2017-09-20 10:31:03
阅读次数:
144
manacher+set 好像这种求回文串形态的都是用manacher,然后求出中心之间奇怪的关系 我们先跑出来manacher,由于只要偶数回文串,我们就只把#位置记录下来,重新保存,然后我们考虑什么情况下区间[x+1,y]*4可以更新答案,x是整个回文串的中心。那么很明显有x+f[x]/2>=y ...
分类:
其他好文 时间:
2017-09-19 16:45:37
阅读次数:
173
Manacher是用来求最长回文子串的。做法很好理解,有一点贪心的感觉。 解释一下加#号字符串abbaba,abba和aba都回文子串,但是一个长度是奇数,一个是偶数,直接做还要分情况讨论。如果变成#a#b#b#a#b#a#,那#a#b#b#a#和#a#b#a# 长度都是奇数,而且开头结尾都是#号, ...
分类:
其他好文 时间:
2017-09-17 17:32:58
阅读次数:
148
Description Orez很喜欢搜集一些神秘的数据,并经常把它们排成一个矩阵进行研究。最近,Orez又得到了一些数据,并已经把它们排成了一个n行m列的矩阵。通过观察,Orez发现这些数据蕴涵了一个奇特的数,就是矩阵中上下对称且左右对称的正方形子矩阵的个数。 Orez自然很想知道这个数是多少,可 ...
分类:
其他好文 时间:
2017-09-17 13:44:22
阅读次数:
226
之前的字符串题解中对Manacher的思想进行了简略的介绍,在这篇文章中,我将会详细的将这个算法的初衷和具体实现理论进行解释。声明一点,这是我个人的理解,可能有不全面之处,望多包涵。在之前的几篇文章中,我也发现有个别的编辑错误,希望大家在看的时候多加思考,不要被我的思维禁锢。 可能有的人没有看过之前 ...
分类:
其他好文 时间:
2017-09-17 01:32:47
阅读次数:
149
马拉松算法:马拉松算法是用来计算一个字符串中最长的回文字符串(对称字符串,如aba abba)。 首先,我们拿到一个字符串S,然后在S中的每个字符之间加#。例如:S="abcb" T="a#b#c#b" 我们T字符串的每一个T[i]向延伸d个字符 使得 T[i-d,i+d]是一个回文字符串。你会立刻 ...
分类:
编程语言 时间:
2017-09-16 15:00:38
阅读次数:
272
1297. Palindrome Time limit: 1.0 second Memory limit: 64 MB The “U.S. Robots” HQ has just received a rather alarming anonymous letter. It states that ...
分类:
编程语言 时间:
2017-09-12 00:03:13
阅读次数:
274