KMP
cscoder
这个作者很懒,什么都没留下…
展开
-
POJ:2406 Power Strings
http://poj.org/problem?id=2406 题目意思很明确,确定一个a使得a^n=s,使得s最大,这个题目初看时,貌似需要找到最小的a,然后才能求出s,但这样肯定会超时。想到用KMP算法,将S当作模式串,对S进行一次自我匹配后,就可以找到了最小的a的长度了,其中先计算lena = lens - next[lens] ,然后判断lena是否能被lens 整除,如果能整除,则说明l原创 2012-04-23 20:45:15 · 389 阅读 · 0 评论 -
POJ:2752Seek the Name, Seek the Fame
http://poj.org/problem?id=2752 题目找出给定的字符串的字串使得前缀与后缀相等,用KMP解。思路很巧妙,充分利用了KMP算法的思想,即对于模式串的next[]数组进行求解的思想。我们知道对于模式串P,长度为lenp ,有next[lenp]为模式串p的前缀与后缀相等的长度,理由简单,next[lenp]保存的是以p[lenp]结尾的且与字符串开始的时候匹配的最大长度(原创 2012-04-23 22:23:09 · 306 阅读 · 0 评论 -
POJ3461:Oulipo
http://poj.org/problem?id=3461 题目很简单,就是寻找给定的模式串在目标串中出现了多少次,采用KMP算法。代码如下: /* ID: csuchenan Algorithm: KMP PROG: POJ 3461 Oulipo LANG: C++ */ #include #include #include #include using namespace std ;原创 2012-04-23 15:36:30 · 312 阅读 · 0 评论