hdu 1711 Number Sequence(求模式串首次出现在文本串的位置)
2015-08-03 17:59
429 查看
1.代码:
#include<cstdio> #include<cstring> using namespace std; int a[1000005],b[10005]; int next[10005]; int LCPS[10005]; int n,m; void GetLCPS() { int j=0; int k=-1; next[0]=-1; while(j<m) { if(k==-1||b[k]==b[j]) { LCPS[j++]=++k; if(j<m) next[j]=k; } else { if(k-1>=0) k=LCPS[k-1]; else k=-1; } } //printf("abcd\n"); } void KMP() { int i=0; int j=0; while(i<n&&j<m) { if(j==-1||a[i]==b[j]) { i++; j++; } else { j=next[j]; } } //printf("abcd\n"); if(j==m) printf("%d\n",i-j+1); else printf("-1\n"); } 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]); GetLCPS(); KMP(); } return 0; }
相关文章推荐
- UISwitch
- UITouch(事件)及其如何让视图随着鼠标移动
- Implement Queue using Stacks
- UGUI 使用 BMFont
- leetcode-225-Implement Stack using Queues
- Implement Stack using Queues
- easyui-accordion动态生成菜单的实现
- leetcode-232-Implement Queue using Stacks
- Hbuilder主页面控制子页面的方法
- UVA 11572 Unique snowflakes (滑窗)
- UI_Delegate
- iOS开发UI篇—在UItableview中实现加载更多功能
- swirl 1: Basic Building Blocks
- hdu 5312 Sequence
- 【控件】UISegmentedControl的简单创建
- 数据List刷新UI的Items显示(比如服务器给客户端刷新好友列表) 方法(1)
- Selenium2学习-030-WebUI自动化实战实例-028-获取元素位置及大小
- iOS开发UI篇—UIScrollView控件实现图片轮播
- 依赖注入与JSR-330的参考实现——Guice
- iOS开发系列--UITableView全面解析