codeforces625BWar of the Corporations

来源:互联网 发布:仿08影院模板源码 编辑:程序博客网 时间:2024/06/07 19:44

这题就是问你一串字符串里包含几个字串

kmp一下就好了

/* ***********************************************Author        :yzkAcceptedCreated Time  :2016/2/7 18:20:38TASK  :ggfly.cppLANG          :C++************************************************ */#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>#include <vector>#include <queue>#include <set>#include <map>#include <string>#include <cmath>#include <cstdlib>#include <ctime>using namespace std;typedef __int64 ll;char s[100050],str[100050];int nnext[2005];int pd(char *s1,char *s2){    int n,m,i,j,num=0;n=strlen(s1);m=strlen(s2);i=0,j=-1;memset(nnext,-1,sizeof(nnext));while(i<m){if(j==-1 || s2[i]==s2[j]){i++;j++;nnext[i]=j;}else j=nnext[j];}i=0;j=0;while(i<n && j<m){if(j==-1 || s1[i]==s2[j]){i++,j++;if(j==m){num++;j=0;}}elsej=nnext[j];}return num;}int main(){    int n,m,i,j,ans;    scanf("%s",s);    scanf("%s",str);printf("%d\n",pd(s,str));    return 0;}


0 0