HDU 1711 Number Sequence
来源:互联网 发布:java算法技术手册 编辑:程序博客网 时间:2024/05/16 02:00
分析:
KMP模板题,学KMP算法的练习题。(其实现在对KMP中的next数组理解的还不是很深,我都是一直理解为next[i]是0—i中的前缀与后缀相同的字符数)
代码:
#include<cstdio>#include<cstring>#include<algorithm>using namespace std;int A[10005];int B[1000005];int nxt[10005];int n,m,t;int makenext(){ int l,r; l=-1;r=0;nxt[0]=-1; while(r<m){ if(l==-1||A[l]==A[r]){ nxt[++r]=++l; }else{ l=nxt[l]; } }}int kmp(){ makenext(); int ln=0,lm=0; while(ln<n&&lm<m){ if(lm==-1||B[ln]==A[lm]){ ++ln;++lm; }else{ lm=nxt[lm]; } if(lm>=m)return ln-lm+1; } return -1;}int main(){ // freopen("in.txt","r",stdin); scanf("%d",&t); bool dec; while(t--){ dec=true; memset(nxt,0,sizeof(nxt)); scanf("%d%d",&n,&m); for(int i=0;i<n;++i)scanf("%d",&B[i]); for(int i=0;i<m;++i)scanf("%d",&A[i]); printf("%d\n",kmp()); } return 0;}
0 0
- hdu 1711 Number Sequence
- hdu 1711 Number Sequence
- hdu 1711 Number Sequence
- Hdu-1711 Number Sequence
- hdu 1711 Number Sequence
- HDU 1711 Number Sequence
- HDU 1711 Number Sequence
- hdu 1711 Number Sequence
- HDU-1711-Number Sequence
- hdu 1711 Number Sequence
- Hdu 1711 - Number Sequence
- hdu 1711 Number Sequence
- HDU 1711 Number Sequence
- HDU 1711 Number Sequence
- HDU-Number Sequence -1711
- hdu 1711 number sequence
- HDU 1711 Number Sequence
- Number Sequence hdu 1711
- Introduce to algorithm--------pseudo code to C/C++ code (chapter 16)
- gdb tips 总结
- pyqt5程序使用py2exe打包后运行时报找不到Qt platform plugin ‘windows’错误
- Redis之小端转大端
- 作为软件测试人员,如何描述缺陷(Defect)?
- HDU 1711 Number Sequence
- MySQL数据库游标
- 从本地JSON文件中读取数据
- html学习笔记(8)
- STM32时钟讲解(内部构架说明)
- CoreMotion框架中加速度计使用简明教程
- mysql日志详细解析
- 删除某目录下的文件夹和文件
- Android Socket开发 注意事项