zoukankan      html  css  js  c++  java
  • hdu 1711

       感觉到了算法的伟大,虽然是用了最基本的kmp算法,不过代码写的比较乱,因为数组是从0开始,如果数组时从1开始的话估计就会清晰了。

    #include<iostream>
    #include<stdio.h>
    using namespace std;
    int s1[1000005],s2[10005];
    int p[10005];
    int main()
    {
        int total_case,iii;
        scanf("%d",&total_case);
        for(iii=0;iii<total_case;iii++)
        {
              int n1,n2,i;
              scanf("%d%d",&n1,&n2);
              for(i=0;i<n1;i++)
                 scanf("%d",&s1[i]);
              for(i=0;i<n2;i++)
                 scanf("%d",&s2[i]);
              int j=-1;
              p[0]=-1;
              for(i=1;i<n2;i++)        //初始化数组p的值
              {
                  while(j>-1&&s2[j+1]!=s2[i])
                       j=p[j];                //若不相等的话就等于其下最短首尾相等字符创的长度(字符串的长度从零开始)
                  if(s2[j+1]==s2[i])
                       j++;
                  p[i]=j;
              }
             
              j=-1;
              for(i=0;i<n1;i++)
              {
                  while(j>-1&&s2[j+1]!=s1[i])
                      j=p[j];
                  if(s2[j+1]==s1[i])
                      j++;
                  if(j==n2-1)
                  {
                      printf("%d\n",i-j+1);
                      break;
                  }
              }
              if(i==n1)
                  printf("-1\n");
          }
    }

  • 相关阅读:
    异步与同步,阻塞与非阻塞的正确认识
    Go 环境配置
    使用node.js 脚手架搭建Vue项目
    使用HBuilder+MUI+Flask后端服务器框架+Mongodb数据库开发手机APP
    基于百度API+Flask实现网页版和图灵机器聊天
    人工智能-调百度AI接口+图灵机器人
    日期显示格式的修改
    salt软件远程控制服务器
    Django
    孙鑫MFC学习笔记14:网络编程
  • 原文地址:https://www.cnblogs.com/dchipnau/p/4985953.html
Copyright © 2011-2022 走看看