zoukankan      html  css  js  c++  java
  • HDU2203 亲和串

     是本来想今天写下后缀数组,谁知明天要交高数作业,还有大物视频,英语视频blablabla。。。

     赶啊。。。。然后忍不住写了两个kmp水题

    hdu2203
    #include<cstdio>
    #include<cstdlib>
    #include<iostream>
    #include<cstring>
    #include<string>
    #include<algorithm>
    #include<memory.h>
    using namespace std;
    char a[200010],b[100010];
    int Next[100010],L1,L2,ans;
    bool flag;
    void _next()
    {
        int i,k;
        Next[1]=0;
        for(i=1,k=0;i<=L2;i++){
             while(k&&b[i]!=b[k+1])k=Next[k];//k不能为0不然一直循环 
             if(b[i]==b[k+1]) k++;
             Next[i]=k;
        }
    }
    void _kmp()
    {
    _next();
    int i,k; for(i=1,k=0;i<=L1;i++){ while(k&&a[i]!=b[k+1]) k=Next[k]; if(a[i]==b[k+1]) k++; if(k==L2){ flag=true; return ; } } } int main() { while(~scanf("%s",a+1)){ flag=false; scanf("%s",b+1); L1=strlen(a+1); L2=strlen(b+1); for(int i=1;i<=L1;i++) a[i+L1]=a[i]; if(L1<L2) printf("no "); else{ L1*=2; _kmp(); if(flag) printf("yes "); else printf("no "); } } return 0; }

    每天都要进步

  • 相关阅读:
    按键
    bga植球
    数码管
    蜂鸣器
    LED流水灯
    sysTick定时器
    位带
    Android开发
    JavaScript修改src
    JSP笔记
  • 原文地址:https://www.cnblogs.com/hua-dong/p/7638195.html
Copyright © 2011-2022 走看看