HDU1711 KMP的应用
2016-03-18 23:36
387 查看
这个题的意思就是给你一个串, 让你求这个串在另外一个串里第一次出现的位置, 代码如下:
#include <cstdio> #include <cstring> using namespace std; int N, M; int a[1000000+100], b[10000+100]; int next[10000+10]; void getnext(){ int i=0, j=-1; next[0] = -1; while(i<M){ if(j==-1 || b[i]==b[j]) { i++; j++; next[i] = b[i]==b[j]?next[j]:j; } else j = next[j]; } } int KMP(){ int i=0, j=0; while(i<N){ if(j==-1 || a[i]==b[j]) i++, j++; else j = next[j]; if(j==M) return i-M+1; } return -1; } int main(){ int T; scanf("%d", &T); while(T--){ scanf("%d%d", &N, &M); for(int i=0; i<N; i++) scanf("%d", &a[i]); for(int i=0; i<M; i++) scanf("%d", &b[i]); getnext(); printf("%d\n", KMP()); } return 0; }
相关文章推荐
- JAVA对象的属性值自动维护
- Android全屏启动页进入非全屏activity界面部分内容被状态栏遮住
- zoj--1951 Goldbach's Conjecture(math)
- Java day06 接口interface
- 怎么有效锻炼自己的记忆力?
- offline .net3.5
- MVP模式在Android中的使用
- 和为S的两个数字
- android学习笔记——ListView的使用
- Android四大组件之Service复习笔记
- Linux修改mac地址
- 如何诊断和解决high version count
- 构建乘积数组
- Java transient关键字使用小记
- 高精度乘单精度
- CSS3布局相关样式学习
- 使用 __weak typeof(self) weakSelf = self 在代码块内部崩溃问题
- 实现一个通讯录;
- hdu1205(基础)
- 链表中环的入口结点