zoukankan      html  css  js  c++  java
  • hdu 1711 Number Sequence(kmp)

    #include <stdio.h>
    #include <string.h>
    #include <iostream>
    #include <algorithm>
    #include <vector>
    #include <queue>
    #include <set>
    #include <map>
    #include <string>
    #include <math.h>
    #include <stdlib.h>
    #include <time.h>
    using namespace std;
    const int N=1000000+5;
    const int M=10000+5;
    
    int n,m,t[N],p[M],f[M];
    
    int kmp()
    {
        int i,j,k=0;
        f[0]=0;
        f[1]=0;
        for(i=1;i<m;i++)
        {
            j=f[i];
            while(j&&p[i]!=p[j]) j=f[j];
            f[i+1]=p[i]==p[j]?j+1:0;
        }
        j=0;
        for(i=0; i<n; i++)
        {
            while(j&&p[j]!=t[i]) j=f[j];
            if(p[j]==t[i]) j++;
            if(j==m)
            {
                k=1;
                break;
            }
        }
        if(k)
            return i-m+2;
        else
            return -1;
    }
    
    int main()
    {
        int _,i;
        scanf("%d",&_);
        while(_--)
        {
            scanf("%d%d",&n,&m);
            for(i=0; i<n; i++) scanf("%d",&t[i]);
            for(i=0; i<m; i++) scanf("%d",&p[i]);
            int p=kmp();
            printf("%d
    ",p);
        }
        return 0;
    }

    版权声明:本文为博主原创文章,未经博主允许不得转载。http://xiang578.top/

  • 相关阅读:
    Flink之DataStreamAPI入门
    Spark底层原理简化版
    Spark调优
    Flink架构及其工作原理
    Kafka总结
    leetcode数学相关
    程序员的修炼之道5
    数据库连库建表
    完成了web系统
    即将完成大型web系统
  • 原文地址:https://www.cnblogs.com/xryz/p/4847932.html
Copyright © 2011-2022 走看看