
字符串处理
文章平均质量分 82
Pira
追求梦想的人,难免有些不切实际。。。
展开
-
hdu 2222(AC自动机入门题)
Keywords SearchTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 11021 Accepted原创 2011-09-22 18:39:19 · 957 阅读 · 0 评论 -
poj 3415 Common Substrings(长度大于k的相同子串对数xian 后缀数组+单调桟统计)
地址:http://poj.org/problem?id=3415题意:给你两个字符串,还有一个数字K,要求这两个字符串长度大于等于K的相同子串对数,具体看题目分析:这题求相同子串,自然就会让人想到后缀数组之类的解法,不过后缀数组只能求出最长的公共子串,还有一些公共前缀的信息,没办法完成统计子串对数,我想了半天都没想出办法,然后看了一眼讨论,有人说是单调性。。。我就继续往这方面思考了,仔细原创 2013-06-05 14:06:29 · 2927 阅读 · 4 评论 -
spoj 220 Relevant Phrases of Annihilation(n个串的最长公共重复2次子串)
地址:http://www.spoj.com/problems/PHRASES/题意:给你n个串,求最长的公共重复子串分析:跟两个串的最长的公共重复子串差不多,也是将所有串合成一个串,构造后缀数组,然后二分子串长度,在满足条件的区间里,求出n的串的下标的上下界的差值大于等于当前长度,所有串都满足说明存在解,否则无解。。。代码:/** head files*/#include #原创 2013-05-30 17:15:13 · 2635 阅读 · 0 评论 -
poj 1743 Musical Theme(最长不重叠重复子串 后缀数组+二分)
题目:http://poj.org/problem?id=1743题意:给你一个序列,求序列里长度至少为5的最长不重叠重复子串,这里的重复包括每个元素加减相同的值分析:对于区间加减可以通过将相邻的元素的差组成新的序列,答案就变成求至少长度4的最长不重叠重复子串,并且至少间隔1的距离,然后就可以用后缀数组来做了,然后二分子串的长度L,找到height数组大于等于这个长度L的区间,求区间对应原原创 2013-05-30 16:12:04 · 2532 阅读 · 0 评论 -
POJ 3261 Milk Patterns(后缀数组)
题目:http://poj.org/problem?id=3261题意:给你一个序列,求序列里重复出现至少K次的最长子串分析:这题如果学过后缀数组的话,那就是模版题了,直接构造一个后缀数组,然后枚举i,询问[ i, i+k-1 ] 的最长公共前缀就行,i表示排在第i位的后缀代码:/** head files*/#include #include #include #incl原创 2013-05-30 10:33:06 · 2364 阅读 · 0 评论 -
poj 3294 Life Forms(后缀数组+二分)
题目:http://poj.org/problem?id=3294题意:给你n给字符串,求在一半以上的串里重复出现的最长子串分析:将所有字符串合成一个串,字符串自己用不同的字符标记间隔,然后构造新字符串的后缀数组,很容易发现,相同子串一定在后缀数组里相邻,只要判断一个区间里的子串里是否包括了超过一半的不同串,我们只要二分子串的长度,就能得到一些区间,height数组大小都大于等于该长度,这原创 2013-05-30 13:28:14 · 2358 阅读 · 0 评论 -
Manacher算法——求最长回文子串
Manacher算法是用来求解一个给定字符串的最长回文子串,回文就是将字符串翻转后,与原来一样。这个算法通过添加字符,巧妙的将回文长度为偶数的情况转化成奇数,简化了问题的步骤,并且利用回文的性质,将去除了冗余的比较,从而将复查度降到O(len),能够求出以每个字符为中心的最长回文,从而求出最长的回文子串。现在,简述一下算法的过程:在相邻的两个字符之间(包括首尾)添加特殊字符(也就是原创 2013-05-16 15:50:53 · 2205 阅读 · 0 评论 -
hdu 3065(AC自动机)
病毒侵袭持续中Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1696 Accepted Submissi原创 2011-09-22 20:42:34 · 963 阅读 · 0 评论 -
hdu 2896(AC自动机模板题)
病毒侵袭Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2538 Accepted Submission(原创 2011-09-22 19:48:09 · 737 阅读 · 0 评论 -
后缀数组da+dc3
以前一看到字符串的题目就有些畏惧,感觉无从下手,只会个KMP和AC自动机,很多情况下都是力不从心,所以打算学各种高端的算法,来解决这类问题,后缀数组应该是性价比教高的吧,至少很简单,容易理解,算法实现是另一回事,毕竟ACM比赛是可以带模版的,所以它也就显得简单实用了,下面一起看看这个实用的数据结构吧! 首先给定一些定义: 字符串S,s[ i ]表示第i个字符,s[ i , j原创 2013-05-29 21:14:47 · 4794 阅读 · 1 评论