随笔分类 -  KMP

HDU 5763 Another Meaning
摘要:HDU 5763 Another Meaning 题意:一个字串有可能在模式串出现多次,问有多少种可能出现的情况。关键是有重合的字串是不能同时计入的。 思路:先用kmp求出所有字串的位置。然后,dp. 二维的时候:dp[i][j] i表示前i个子串,j的值1表示一定用这个串,0表示不用。值表示字串出 阅读全文
posted @ 2016-07-29 19:09 小小八 阅读(183) 评论(0) 推荐(0)
FZU 2128 最长子串
摘要:题目链接:最长子串 思路:依次找出每个子串的在字符串中的首尾地址,所有子串先按照尾地址从小到大排序。然后首地址从小到大排。 遍历一遍每个子串的首地址和它后面相邻子串的尾地址之差-1, 第一个子串的首地址,字符串长度-最后一个子串的首地址-1的最大值就是ans。 st1 ed1 st2 ed2 例如这 阅读全文
posted @ 2016-04-02 15:38 小小八 阅读(212) 评论(0) 推荐(0)
FZU 2122 又见LKity
摘要:题目链接:又见LKity ...真是不知道怎么被这个水题卡这么久的,开始用kmp,就是过不了,无脑dbug未果。换了一种kmp模板结果就过了。确实这个模板更好理解一些吧。 然后暴力0ms过的不知道什么鬼。 正解kmp一次求出每个字串的位置,代码: AC版: 莫名WA版: 暴力版: 希望不会再浪费这么 阅读全文
posted @ 2016-04-01 17:13 小小八 阅读(189) 评论(0) 推荐(0)
POJ 1961 循环节
摘要:和POJ 2406几乎一样。前者是求该字符串的最小的循环节。也就是最大的循环次数。后者是求该字符串的每个前缀的循环节的最大循环次数。(如果有的话)。而且必须大于1。才可以输出。就是POJ 2406变形。加一个循环遍历就可以了。当然了。结论仍然是我【记住】的。 1 #include 2 #inclu... 阅读全文
posted @ 2015-10-09 10:31 小小八 阅读(215) 评论(0) 推荐(0)
POJ 2406 KMP 循环节
摘要:给一个字符串。求这个串的最小的循环节的长度。好像。num = len/(len-next[len])就是循环节的长度。如果 len%(len-next[len]) ==0 就是说字符串长度刚好是循环节长度的整数倍。不然的话。说明没有最小循环节。证明嘛。这里好像还是蛮靠谱的。http://blog.c... 阅读全文
posted @ 2015-10-06 15:42 小小八 阅读(220) 评论(0) 推荐(0)
KMP 求next数组
摘要:一直没理解。看这个倒是看懂了。但是博主代码好像有点问题吖。测试并不正确。思想还是没错的。转载自:http://www.tuicool.com/articles/yayeIbe 阅读全文
posted @ 2015-10-06 14:36 小小八 阅读(216) 评论(0) 推荐(0)
POJ 2752 KMP中next数组的理解
摘要:感觉这里讲的挺好的。http://cavenkaka.iteye.com/blog/1569062就是不断递归next数组。长度不断减小。题意:给你一个串,如果这个串存在一个长度为n的前缀串,和长度为n的后缀串,并且这两个串相等,则输出他们的长度n。求出所有的长度n。思路:KMP中的get_next... 阅读全文
posted @ 2015-10-06 14:34 小小八 阅读(194) 评论(0) 推荐(0)
KMP详解
摘要:转载自:http://blog.csdn.net/joylnwang/article/details/6778316讲的应该是蛮好的。恩。因为我看懂了。代码还是不太懂。算法了解了。感觉最精辟的一句话就是next[j]是所有满足pattern[1...k - 1] = pattern[(j - (k ... 阅读全文
posted @ 2015-10-05 19:15 小小八 阅读(232) 评论(1) 推荐(0)