hdu 1711 Number Sequence KMP模板题
2016-03-28 13:25
375 查看
题意:给你两个数组,求第二个数组在第一个数组中的位置,若不存在,则输出-1.
#include <cstdio> #include <cmath> #include <iostream> #include <string.h> #include <algorithm> using namespace std; int d[10005]; int f[1000005]; int Next[20005]; void KMP(int s[],int len) { int n=len,i,j; memset(Next,0,sizeof(Next)); for(i=1;i<n;i++) { j=Next[i-1]; while(j>0&&s[i]!=s[j]) j=Next[j-1]; if(s[i]==s[j]) j++; Next[i]=j; } return ; } int main() { int i,j,k,m,n,ans,T; scanf("%d",&T); while(T--) { scanf("%d%d",&n,&m); for(i=0;i<n;i++) scanf("%d",&f[i]); for(i=0;i<m;i++) scanf("%d",&d[i]); KMP(d,m); ans=-1; for(i=0,j=0;i<n;i++) { while(j>0&&d[j]!=f[i]) j=Next[j-1]; if(f[i]==d[j]) j++; if(j==m) { ans=i-m+2; break; } } printf("%d\n",ans); } return 0; }
相关文章推荐
- 交换排序之快速排序
- 2016.03.27,英语,《Vocabulary Builder》Unit 06
- 为UIImageView设置手势不生效????
- UITableView:改变 TableHeaderView 的高度
- poj2478 Farey Sequence (欧拉函数)
- 【开源项目13】Volley框架 以及 设置request超时时间
- 自定义弹窗
- 新手色彩三刀流UI界面配色
- Java中String判断相等equals与==的区别以及StringBuilder的equals
- StringBuilder 和StringBuffer的理解
- mysql:慢查询日志slow_query_log
- Android4.42-Settings源码分析之蓝牙模块Bluetooth整体实现(总)
- “四核”驱动的“三维”导航 -- 淘宝新UI(需求分析篇)
- ios-消息弹框之UIAlertView, UIActionSheet以及UIAlertController小结
- uestc1133菲波拉契数制
- UIButton常用属性总结
- Unique Binary Tree
- Hadoop 数据类型与文件结构剖析 Sequence, Map, Set, Array, BloomMap Files
- UIDatePicker - 日期选择器
- 用阻塞队列LinkedBlockingQueue实现生产者消费者先进先出