扩展KMP
H_ang
记录一些东西吧!
展开
-
HDU - 2594 扩展KMP:s1的前缀和s2的后缀的最长公共长度
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2594 题目大意:就是求s1的前缀和s2的后缀的最长公共长度。 扩展KMP的extend[i]含义: 定义母串S,和字串T,设S的长度为n,T的长度为m,求T与S的每一个后缀的最长公共前缀,也就是说,设extend数组, extend[i]表示T与S[ i,n-1 ]的最长公共前缀, Next[i]表示...原创 2019-09-12 18:07:20 · 748 阅读 · 0 评论 -
HDU - 3336 扩展KMP:问所有前缀在字符串出现的次数
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3336 题目大意:问所有前缀出现的次数。 思路: 求出扩展kmp的Next数组,然后把Next的值全部加起来就是答案. 扩展kmp的Next[i]表示的是,以i为开头的后缀,与整个字符串的lcp的长度,那么显而易见,整个字符串长度为1,2,…,Next[i]的前缀在这里都出现了一次,所以此时答案加上Ne...原创 2019-09-12 18:16:55 · 360 阅读 · 0 评论 -
HDU - 1238 KMP:最大公共子串
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1238 题目大意:找出最长的一个子串,所有串中都出现过它或它的逆序。 这个子串一定在字符串1出现。那么就二分长度枚举字符串1的子串。再用kmp判断是否在其他的字符串存在。 #include<bits/stdc++.h> #define LL long long using namespace...原创 2019-09-12 20:03:48 · 242 阅读 · 0 评论