zoukankan      html  css  js  c++  java
  • HDU 1717

    KMP模板题、

    直接放代码

     1 #include<cstdio>
     2 #include<cstring>
     3 const int qq=1e6+10;
     4 int next[qq];
     5 int x[qq],y[qq];
     6 int n,m;
     7 int KMP()
     8 {
     9     int i,j;
    10     i=j=0;
    11     while(i<n){
    12         if(j==-1||x[i]==y[j]){
    13             ++i;++j;
    14         }
    15         else
    16             j=next[j];
    17         if(j==m)
    18             return i-m+1;
    19     }
    20     return -1;     
    21 }
    22 int main()
    23 {
    24     int t;scanf("%d",&t);
    25     while(t--){
    26         scanf("%d%d",&n,&m);
    27         for(int k=0;k<n;++k)
    28             scanf("%d",&x[k]);
    29         for(int k=0;k<m;++k)
    30             scanf("%d",&y[k]);
    31         int i,j;
    32         next[0]=-1;
    33         i=0;j=-1;
    34         while(i<m){
    35             if(j==-1||y[i]==y[j]){
    36                 ++i;++j;
    37                 next[i]=j;
    38             }
    39             else
    40                 j=next[j];
    41         }
    42         int ans=KMP();
    43         if(ans!=-1)    printf("%d
    ",ans);
    44         else    printf("-1
    ");
    45     }
    46     return 0;
    47 }
  • 相关阅读:
    MyBatis
    spring post 图片
    spring boot
    linux 调用栈打印
    sys.usb.config webcam
    jsp+bean+servlet 案例代码
    常见的http头信息
    通过JSTL+EL实现循环迭代
    EL表达式介绍
    EL表达式
  • 原文地址:https://www.cnblogs.com/sasuke-/p/5162778.html
Copyright © 2011-2022 走看看