[裸KMP][HDU1711][Number Sequence]
来源:互联网 发布:java actionevent 编辑:程序博客网 时间:2024/05/18 03:55
题意
找到子串在母串出现的第一个位置
解法
裸的KMP
特别的地方
第一次不看模板自己敲的KMP
#include<stdio.h>const int maxn=100000;const int MAXN=1000000;int next[maxn];int S[MAXN];int T[maxn];int N,M;void get_next(){ for(int i=2;i<=M;i++) { int p=i-1; while(T[next[p]+1]!=T[i]&&p!=0) p=next[p]; if(p!=0) next[i]=next[p]+1; else next[i]=0; }}void input(){ scanf("%d%d",&N,&M); for(int i=1;i<=N;i++) scanf("%d",&S[i]); for(int i=1;i<=M;i++) scanf("%d",&T[i]);}int kmp(){ int i=1,j=0; for(i=1;i<=N;i++) { while(S[i]!=T[j+1]&&j>0) j=next[j]; if(S[i]==T[j+1]) j++; if(j==M) return i-M+1; } return 0;}void solve(){ get_next(); int t=kmp(); if(t==0) printf("-1\n"); else printf("%d\n",t);}int main(){ //freopen("a.in","r",stdin); int T; scanf("%d",&T); while(T--) { input(); solve(); }}
//等会继续写
0 0
- [裸KMP][HDU1711][Number Sequence]
- Number Sequence hdu1711 KMP
- hdu1711 Number Sequence,KMP
- hdu1711 Number Sequence (KMP)
- hdu1711 Number Sequence---KMP
- Number Sequence HDU1711 (kmp)
- HDU1711-Number Sequence-KMP
- hdu1711 number sequence KMP
- Hdu1711-Number Sequence-【KMP】
- HDU1711-----Number Sequence-----裸的KMP
- HDU1711 Number Sequence(裸KMP)
- hdu1711 Number Sequence(KMP)
- HDU1711 Number Sequence KMP基础
- hdu1711 Number Sequence kmp算法
- hdu1711 Number Sequence(KMP)
- hdu1711--Number Sequence(KMP)
- hdu1711 Number Sequence(KMP水题)
- HDU1711-Number Sequence-KMP算法(模板)
- 个人对unity inspector面板中不显示二维数组的解决方法
- 项目实战No10 评论管理
- aop的概念总结
- Django 连接数据库
- iOS开发之查找目录
- [裸KMP][HDU1711][Number Sequence]
- Android动画(透明度,平移,旋转,拉伸,动态添加按钮)
- 评估文本评论情感分析的机器学习和非监督语义倾向性方法(IEEE2012)
- hdu 1370
- Rectangle Area
- 之字打印,从矩阵右上角到左下打印数组(算法)
- UIView
- ios 字符串,字典,数组存储到本地文件
- LeetCode 算法实现:TwoSum