kmp
LLL_yx
这个作者很懒,什么都没留下…
展开
-
HDU - 1711 Number Sequence (kmp模板题)
题目链接:http://acm.split.hdu.edu.cn/showproblem.php?pid=1711题意:求字符串b在字符串a中第一次出现的位置,没有则输出-1思路:直接借用kuangbin大神的模板,具体看代码代码:#include #include #include #include #include #include #include #i原创 2017-10-15 14:00:07 · 229 阅读 · 0 评论 -
KMP算法之next数组详解 (转载)
KMP算法的Next数组详解转载请注明来源,并包含相关链接。 网上有很多讲解KMP算法的博客,我就不浪费时间再写一份了。直接推荐一个当初我入门时看的博客吧:http://www.cnblogs.com/yjiyjige/p/3263858.html这位同学用详细的图文模式讲解了KMP算法,非常适合入门。------------------------------转载 2017-10-15 19:19:04 · 265 阅读 · 0 评论 -
POJ - 1961 Period(next数组求循环节)
题目链接:http://poj.org/problem?id=1961题意:给你一个字符串,求每个前缀的大于等于2的循环节长度,输出前缀长和循环节循环的次数思路:通过next数组,next表示模式串如果第i位(设str[0]为第0位)与文本串第j位不匹配则要回到第next[i]位继续与文本串第j位匹配。则模式串第1位到next[n]与模式串第n-next[n]位到n位是匹配的,如果n%(n原创 2017-10-15 20:23:22 · 310 阅读 · 0 评论 -
POJ - 2406 Power Strings(next数组)
题目链接:http://poj.org/problem?id=2406题意:给出一个字符串 问它最多由多少相同的字串组成。思路:用next数组,如果n%(n-next[n])==0,则存在重复连续子串,长度为n-next[n],如果不存在那么就只能使循环节为自己。代码:#include #include #include #include #include #in原创 2017-10-15 20:34:24 · 358 阅读 · 0 评论 -
HDU - 3336 Count the string(kmp+dp)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336题意:求这个字符串每个前缀在字符串中出现了多少次。思路:dp[i]记录在长度为i的前缀时有多少个,递推为dp[i]=dp[Next[i]]+1,+1是因为长度为i的前缀第一次出现肯定要多一个,Next[i]表示i的前后缀匹配的长度,dp[Next[i]]表示已经出现的前缀又增加了相同的。具原创 2017-10-25 20:05:28 · 323 阅读 · 0 评论