码迷,mamicode.com
首页 > 其他好文 > 详细

HDU2203 亲和串

时间:2017-10-08 19:41:29      阅读:187      评论:0      收藏:0      [点我收藏+]

标签:cstring   pre   amp   col   pac   ret   stream   循环   size   

 是本来想今天写下后缀数组,谁知明天要交高数作业,还有大物视频,英语视频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\n"); else{ L1*=2; _kmp(); if(flag) printf("yes\n"); else printf("no\n"); } } return 0; }

每天都要进步

HDU2203 亲和串

标签:cstring   pre   amp   col   pac   ret   stream   循环   size   

原文地址:http://www.cnblogs.com/hua-dong/p/7638195.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!