HDU
来源:互联网 发布:常州网络推广 编辑:程序博客网 时间:2024/06/05 18:34
题目大意:
还是kmp魔板题,给你两串数,从一串中找出另一串,要是存在多个,就输出最先找到的位置。
代码:
#include<iostream>#include<math.h>#include<stdio.h>using namespace std;int a[1000500];int c[10050];int m,n;int my_next[10050];void get_my_next(){ int i=0,k=-1; my_next[0]=-1; while(i<m) { if(k!=-1&&c[i]!=c[k]) { k=my_next[k]; continue; } i++;k++; if(c[i]==c[k])my_next[i]=my_next[k]; else my_next[i]=k; }}int my_kmp(){ int i=0,j=0; while(i<n) { if(j==-1||a[i]==c[j]) { i++;j++; } else { j=my_next[j]; } if(j==m) { return i-m+1; } } return -1;}int main(){ int test; cin>>test; while(test--) { scanf("%d",&n); scanf("%d",&m); for(int i=0;i<n;i++) { scanf("%d",&a[i]); } for(int i=0;i<m;i++) { scanf("%d",&c[i]); } get_my_next(); cout<<my_kmp()<<endl; }}
0 0
- hdu
- hdu
- HDU
- hdu ()
- hdu
- hdu
- HDU
- HDU
- hdu
- hdu
- HDU
- Hdu
- hdu
- hdu-
- hdu
- hdu
- hdu
- HDU
- 软件光栅化渲染器(六)
- Java设计模式之策略模式
- github中的star、watch、fork
- 添加 cmder 到右键菜单
- Web AppBuilder for ArcGIS(开发版)系列教程 3
- HDU
- Multiple markers at this line
- 运用for循环在数组中进行 一些变换
- IO流
- VIM&GVIM常规配置
- SSH简介
- 【TuSimple】understanding convolution for semantic segmentation
- Android-View的事件分发机制
- 卷积神经网络(CNN)