hdu 1686 Oulipo

来源:互联网 发布:jsp和java的区别 编辑:程序博客网 时间:2024/06/08 06:15

     

       kmp裸题!!!用cin输入超时!!该用scanf就过了!!

#include<iostream>#include<string>#include<string.h>#include<stdio.h>using namespace std;int n,m;int next1[10005];char s[1000005],ss[10005];void mn(){    for(int k=0,i=1;i<m;i++)    {        while(k>0&&ss[i]!=ss[k])            k=next1[k-1];        if(ss[i]==ss[k])            k++;        next1[i]=k;    }}void sm(){    mn();    int cnt=0;    for(int k=0,i=0;i<n;i++)    {        while(k>0&&ss[k]!=s[i])            k=next1[k-1];        if(ss[k]==s[i])         k++;        if(k==m)         cnt++;    }    cout<<cnt<<"\n";}int main(){    int T;    scanf("%d",&T);    while(T--)    {        scanf("%s%s",ss,s);        n=strlen(s);        m=strlen(ss);        sm();    }    return 0;}


 


 

 

0 0
原创粉丝点击