HDU 1711 Number Sequence(KMP模板)
来源:互联网 发布:无root修改手机mac地址 编辑:程序博客网 时间:2024/06/09 20:07
题意不多述,下午看了半个多小时kmp总算懂了,不过明明大多数都是前缀...数组名非得开成next这么让人容易误会...所以我用了pre这个数组名。
假设pre[i]=x,则代表i之前的x个元素和从开头开始x个元素相等。
#include<iostream>#include<algorithm>#include<cstdio>#include<cstring>#include<cmath>#include<cstdlib>using namespace std;int a[1002000],b[10020];int pre[10020];//前缀数组,pre[i]代表b数组中从第i个元素开始有pre[i]个元素和开头相等int n,m;void getpre(){ int i=0,j=-1; pre[0]=-1; while(i<m) { if(j==-1||b[i]==b[j]) pre[++i]=++j; else j=pre[j]; }}int kmp(){ int i=0,j=0; getpre(); while(i<n&&j<m) { if(j==-1||a[i]==b[j]) { i++;j++; } else j=pre[j]; if(j==m) return i-m+1; } return -1;}int main(){ int t; cin>>t; while(t--) { cin>>n>>m; for(int i=0;i<n;i++) scanf("%d",&a[i]); for(int i=0;i<m;i++) scanf("%d",&b[i]); printf("%d\n",kmp()); } return 0;}
0 0
- [KMP模板题]HDU-1711 Number Sequence
- HDU - 1711 Number Sequence (KMP模板)
- 【KMP模板】HDU 1711 Number Sequence
- Kmp 模板 之 hdu 1711 Number Sequence
- HDU 1711 Number Sequence(KMP模板)
- hdu 1711 Number Sequence KMP模板题~~~
- hdu 1711 Number Sequence KMP模板题
- hdu 1711 Number Sequence(kmp模板题)
- HDU 1711Number Sequence(KMP模板)
- hdu 1711Number Sequence(kmp模板题)
- hdu 1711 Number Sequence KMP模板题
- HDU 1711 Number Sequence(kmp模板)
- HDU 1711 Number Sequence(KMP 模板)
- HDU 1711 Number Sequence(KMP模板)
- hdu 1711 Number Sequence kmp模板
- HDU 1711 Number Sequence【KMP模板】
- 【hdu 1711】 Number Sequence KMP模板
- 模板 kmp算法 hdu 1711 Number Sequence
- 英语学习网
- 提示:bash: groupadd: command not found
- (五十八)NSObject实现多线程、自动释放池的补充
- spark源码学习笔记
- poj3009(转载,写的比自己的好太多,直接转来了)
- HDU 1711 Number Sequence(KMP模板)
- 算法入门->合并排序->C/C++ 语言实现
- Struts之七 国际化 & 文件的上传下载
- 【Uva 1368】 DNA Consensus String
- 纹理矩阵
- 基于WebRTC的多人视频会议
- 网络层提供的两种服务
- 基于Web浏览器的实时通信系统(WebRTC)
- What are the Differences between Work Package and Planning Package?