
数据结构
acerllc
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
浅谈KMP算法
KMP算法主要用来处理字符串匹配的问题。简单说,就是给你两串字符串A,B,问你B是否为A的子串(子串知道啥意思吧)。例如,A=“12345”,B=“34”,显然B就是A的子串啦。对于这问题,我们可以用很暴力的方法解决,时间为O(nm)。其中n为串A的长度,m为串B的长度。(记住啦,下面会用到)。下面贴出O(nm)代码: for(i=1; i<=n; i++) { if(A[i] ==原创 2013-05-15 13:40:15 · 554 阅读 · 0 评论 -
hdu 2243 AC+矩阵快速幂
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2243 做这道题前,得先去做这道题:http://poj.org/problem?id=2778 题目大意:给定m个词根,现在要用26个字母组成长度小等于n的字符串并且至少含一个词根的组合种数,n 这道题跟POJ那道差不多,不过这道更恶心,结果要对2^64取模(巨坑啊,害我卡了那么久),原创 2013-07-16 00:13:47 · 592 阅读 · 0 评论 -
Manacher算法:求解最长回文字符串,时间复杂度为O(N)
回文串定义:“回文串”是一个正读和反读都一样的字符串,比如“level”或者“noon”等等就是回文串。回文子串,顾名思义,即字符串中满足回文性质的子串。 经常有一些题目围绕回文子串进行讨论,比如POJ3974最长回文,求最长回文子串的长度。朴素算法是依次以每一个字符为中心向两侧进行扩展,显然这个复杂度是O(N^2)的,关于字符串的题目常用的算法有KMP、后缀数组、AC 自动机,这道题目转载 2013-07-21 23:52:17 · 765 阅读 · 0 评论