HDU_1711
2015-11-25 00:18
405 查看
#include<iostream> #include<cstring> #include<cstdio> using namespace std; const int MAXN = 1000000+10; const int MAXN1 = 10000+10; int a[MAXN], b[MAXN1]; int _next[MAXN]; void kmp_next(int* x, int m, int _next[]){ //dp求next数组 int i, k = _next[0] = -1; i = 0; while(i<m){ if(k==-1 || x[i]==x[k]) _next[++i] = ++k; else k = _next[k]; } } int kmpSearch(int* s, int* p ,int slen, int plen){ int i = 0, j = 0; while(i < slen && j < plen) { if(j == -1 || s[i] == p[j]) { ++i; ++j; } else j = _next[j]; } if(j == plen) return i-j; else return -1; } int main(){ int T; cin >> T; while(T--){ int la, lb; scanf("%d%d", &la, &lb); memset(a, 0, sizeof(a)); memset(b, 0, sizeof(b)); for(int i = 0; i < la; i++) scanf("%d", &a[i]); for(int i = 0; i < lb; i++) scanf("%d", &b[i]); memset(_next, 0, sizeof(_next)); kmp_next(b, lb, _next); int pos = kmpSearch(a, b, la, lb); if(pos!=-1) pos += 1; cout << pos << endl; } return 0; }
相关文章推荐
- java 的反射机制
- 关注的博客链接
- asp.net mvc4 System.Web.Optimization找不到引用
- Android之原生控件列表
- Android之常见数据类型
- 小结,break now
- 20135203齐岳信息安全系统设计基础——实验二实验报告
- Android面试总结
- asp.net mvc4 设置build项目时,编译view页面
- this is my first blog on csdn!
- adapter入门
- 百度内部邮件曝光:李彦宏呼唤狼性 淘汰小资
- Day2 - Wanan 么么哒。
- 纪念品分组(简单贪心)
- python进阶必读汇总
- 浅谈Java中的深拷贝和浅拷贝(转载)
- ViewPager的基本用法
- js字符串的分割
- maven构建命令,maven本地工厂的创建,maven骨架的生成,以及在eclipse里创建maven工程
- Android之常用代码片段收集