Poj 3461 Oulipo (KMP)

来源:互联网 发布:下载配色软件 编辑:程序博客网 时间:2024/05/16 10:19

题目链接:poj 3461

所以这是水KMP模板?

#include<cstdio>#include<cstring>#include<iostream>using namespace std;const int maxn=1000000+10;int next[maxn];char a[maxn];char b[maxn];void get_next(char *s){int l=strlen(s);int k=-1,i=0;next[0]=-1;while(i<l){if(k==-1 || s[i]==s[k]){i++; k++;if(s[i]!=s[k])next[i]=k;else next[i]=next[k];}else k=next[k];}}int find(char *x,char *y){get_next(x);int lx=strlen(x),ly=strlen(y);int i=0,j=0,tot=0;while(j<ly){if(i==-1 || x[i]==y[j]){i++; j++;if(i==lx)tot++;}else i=next[i];}return tot;}int main(){int t; scanf("%d",&t);while(t--){scanf("%s%s",a,b);printf("%d\n",find(a,b));}return 0;}


0 0
原创粉丝点击