Ciyeblog
Ciyeblog
首页
关于
友链
博主的话
随笔
KMP算法
于
2025-07-07
由 ciye 发布
1.求next数组 ``` void get_next(int m) { ne[1]=0; for(int i=2,j=0;i<=m;i++) { while(j&&p[i]!=p[j+1]) j=ne[j]; if(p[i]==p[j+1]) j++; ne[i]=j; } } ``` 2.KMP算法求匹配位置 ``` void kmp(int n,int m) { for(int i=1,j=0;i<=n;i++) { while(j&&s[i]!=p[j+1]) j=ne[j]; if(s[i]==p[j+1]) j++; if(j==m) cout<
using namespace std; #define int long long const int N = 1e6+10; int ne[N]; string s,p; void get_next(int m) { ne[1]=0; for(int i=2,j=0;i<=m;i++) { while(j&&p[i]!=p[j+1]) j=ne[j]; if(p[i]==p[j+1]) j++; ne[i]=j; } } void kmp(int n,int m) { for(int i=1,j=0;i<=n;i++) { while(j&&s[i]!=p[j+1]) j=ne[j]; if(s[i]==p[j+1]) j++; if(j==m) cout<
>s>>p; s=' '+s; p=' '+p; get_next(p.size()-1); kmp(s.size()-1,p.size()-1); for(int i=1;i
>T; while(T--) { solve(); } return 0; } ```
分类:
默认分类
标签:
无标签
暂无评论
发表评论
取消回复
提交评论
×