HDU Number Sequence (KMP模板)
来源:互联网 发布:红叶知弦小说 编辑:程序博客网 时间:2024/06/05 10:02
Number Sequence
基础KMP模板题目;
我的模板与网上的模板也不太一样
具体我的思想参考视频
视频链接
下面代码
#include<stdio.h>#include<string.h>#include<string>#include<iostream>using namespace std;const int maxn=1000000+10,MAXN=1000000+10;int a[MAXN],b[maxn];int nextl[maxn];int main(){ int T; scanf("%d",&T); while(T--) { int len1,len2; scanf("%d%d",&len1,&len2); for(int i=0; i<len1; i++) { scanf("%d",&a[i]); } for(int i=0; i<len2; i++) { scanf("%d",&b[i]); } if(len1<len2) { printf("-1\n"); continue; } int i=0,j=1; nextl[0]=0; memset(nextl,0,sizeof(nextl)); while(j<len1)//建立nextl数组 { if(b[i]==b[j]) { nextl[j]=i+1; i++,j++; } else if(b[i]!=b[j]&&i!=0) { i=nextl[i-1]; } else { nextl[j]==0; j++; } }// for(int x=0; x<len2; x++)// {// printf("%d ",nextl[x]);// }// printf("\n"); i=0,j=0; int flag=0; while(i<=len1)//对a数组进行匹配 { if(j>=len2) { flag=1;// printf("*-*\n"); break; }// printf("%d %d\n",i,j); if(a[i]==b[j]) { i++,j++; } else if(a[i]!=b[j]&&j!=0) { j=nextl[j-1]; } else { i++; } } if(flag==1) { printf("%d\n",i-len2+1); } if(flag==0) { printf("-1\n"); } }}
阅读全文
0 0
- HDU - 1711 Number Sequence (KMP模板)
- HDU 1711 Number Sequence(kmp模板)
- HDU 1711 Number Sequence(KMP 模板)
- HDU 1711 Number Sequence(KMP模板)
- HDU Number Sequence (KMP模板)
- 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
- 【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模板)
- 词向量源码解析:(5.1)ngram2vec源码解析
- 最全Pycharm教程(32)——根据FHS在Linux上安装Pycharm
- Centos下安装Nginx
- 【2017新疆网络赛】C Coconut
- Spring Cloud Zuul微服务网关的API限流
- HDU Number Sequence (KMP模板)
- 使用ajax完成python flask前端与后台数据的交互
- Hbase的安装部署及基本语法
- HDU 6201 树形DP
- JFinal上传文件时用getFile()方法报错
- Nginx配置详解
- XML的使用
- 谁知道vimrc中的这条横线是vimrc中的哪一条?看着好别扭
- C++单元测试(Unit Test)中Catch和Gmock的结合使用