hdu1711 KMP
2015-08-12 10:11
225 查看
#include<stdio.h> #include<string.h> #define maxn 1000010 int next[maxn],s[maxn],p[maxn]; int n,m; void getnext() { int j,k; k=-1; j=0; next[0]=-1; while(j<m) { if(k==-1||p[j]==p[k]) { j++; k++; next[j]=k; } else k=next[k]; } } int kmp() { int i,j; getnext(); i=0; j=0; while(i<n) { if(j==-1||s[i]==p[j]) { i++; j++; } else j=next[j]; if(j==m) { return i-m+1; } } return -1; } int main() { int i,j,t; scanf("%d",&t); while(t--) { scanf("%d %d",&n,&m); for(i=0;i<n;i++) scanf("%d",&s[i]); for(i=0;i<m;i++) scanf("%d",&p[i]); printf("%d\n",kmp()); } }
相关文章推荐
- MySQL备份与恢复之真实环境使用冷备(2)
- 2015 多校联赛 ——HDU5373(模拟)
- MFC多国语言——配置文件
- java--反射
- 2015 多校联赛 ——HDU5373(模拟)
- Android研究院之ListView原理学习与优化总结(二十一)
- java 传值、传引用总结
- Spring+Velocity中模板路径的问题
- 存在环的单链表寻找环的入口点
- 用jQuery判断页面元素是否存在的方法
- TCP/IP体系结构及协议
- JSON.parse()和JSON.stringify()
- 2014最热门的10个Java话题
- (转) Logistic regression (逻辑回归) 概述
- 关于背面剔除的概念。
- hdu 2588
- Java中的集合框架
- jQuery中的DOM操作总结
- 欧元和日元在年底之前,相对于美元还会有持续贬值的趋势,而澳元也可能大幅下跌
- C++之:对象的静态类型和动态类型