![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
kmp 算法
SSL_LKJ
蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名 蒟蒻一名
展开
-
2021.7.22【提高B组模拟9】T4 字符串匹配 (kmp)
SSL集训原创 2021-07-22 16:21:44 · 100 阅读 · 0 评论 -
子串拆分(kmp 算法)
子串拆分解题思路这题可以用枚举两边边界的方法做可以发现当我们用kmp 算法做的时候只用枚举左边界就可以求出右边界时间复杂度是O(n2)AC代码#include<cstdio>#include<cstring>using namespace std;int n,len,len1,ans,next[15005];char s[15005],f[15005];int main(){ scanf("%s%d",s+1,&n); len=strlen原创 2021-03-27 08:24:25 · 143 阅读 · 0 评论 -
周期长度和(kmp 算法)
周期长度和解题思路最大周期其实就是求最小重叠部分就是kmp 算法中的next要使结果最大重叠部分就要最小后部分的next记录位置尽可能靠前就可以用并查集(路径压缩,防止超时)AC代码#include<cstdio>using namespace std;int len,next[1000005];long long ans;char s[1000005];int find(int x)//get father{ if(next[x])return next[x]原创 2021-03-27 08:14:38 · 440 阅读 · 0 评论 -
重复子串(kmp 算法)
重复子串解题思路这题要处理出next数组(前i个字符中,最长相同前缀后缀)设len为字符串s的长度就是字符串第一位到next[len]位与len-next[len]位到第len位是匹配的所以len%(len-next[len])为0时就存在重复连续子串长度为len-next[len]循环次数为len/(len-next[len])否则为1AC代码#include<iostream>#include<cstring>#include<cstdio>原创 2021-03-20 16:25:08 · 856 阅读 · 0 评论 -
子串查找(kmp 算法)
子串查找解题思路这题是kmp算法模板题做法同P3375 【模板】KMP字符串匹配(kmp)差不多我这里k的初值为-1AC代码#include<iostream>#include<cstdio>using namespace std;int len1,len2,ans,next[1000005];string A,B;void getnext()//求next数组{ int k=-1;//初值 for(int i=1;i<len2;i++) {原创 2021-03-20 10:59:24 · 250 阅读 · 2 评论 -
P3375 【模板】KMP字符串匹配(kmp)
KMP字符串匹配题目传送门解题思路这题就是kmp的模板题百度百科的解释巨爷myc的“深入浅出”kmp就是一个时间复杂度为O(n+m)的处理字符串匹配问题的算法AC代码#include<iostream>#include<cstdio>using namespace std;int n,ans,len1,len2,next[1000005];string s1,s2;void getnext()//求next数组{ for(int i=1,k=0;i&原创 2021-03-20 10:50:34 · 158 阅读 · 0 评论