【POJ 3461 KMP】

原创 2013年12月02日 21:44:15

题目链接:http://poj.org/problem?id=3461

#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
char s1[10005],s2[1000005];
int next[10005];
void getNext(char *p,int *next){
    next[0]=-1;
    int i=0,k=-1,len;
    len=strlen(p);
    while(i<len){
        if(k==-1 || p[i]==p[k]){
            i++;
            k++;
            next[i]=k;
        }
        else
            k=next[k];
    }
}
int Kmp(char *s,char *p,int *next){
    getNext(p,next);
    int i=0,k=0,ans=0,len1,len2;
    len1=strlen(s);
    len2=strlen(p);
    while(i<len1){
        if(k==-1 || s[i]==p[k]){
            i++;
            k++;
        }
        else
            k=next[k];
        if(k==len2){
            ans++;
            k=next[k];
        }
    }
    return ans;
}
int main(){
    int test;
    scanf("%d",&test);
    while(test--){
        scanf("%s",s1);
        scanf("%s",s2);
        printf("%d\n",Kmp(s2,s1,next));
    }
}

相关文章推荐

POJ3461 字符串之模式匹配,kmp,求目标串中有多少个位置可重叠的子串

1题意。 求目标串中有多少个位置可重叠的子串。 2分析。 裸的kmp。 3代码 //在目标串中找有多少个子串,出现的子串在位置上上可以交叠 #include #include #includ...

POJ 3461 Oulipo [KMP模板题]

KMP[模板]

KMP入门题 Hdu 1711 2594 3746 HUST 1010 Poj 3461 2752 2406 1961 FZU 1901

三道KMP算法的基础题,有关理论可以参考 KMP及其next数组性质学习小记 Poj1961 + Poj2406 - whyorwhnt的专栏 HUST 1010 The Minimum Len...

POJ 3461 Oulipo (KMP)

Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 23190   Accepted: 9287 ...

poj3461(KMP)

Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17587   Accept...

poj 3461 Oulipo kmp

点击打开链接题目链接 Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26781   Accep...

POJ 3461 KMP算法

#include using namespace std; int* Compute(char* P) { int m=strlen(P); int* PI=new int[m]; PI[0]...

Oulipo_poj3461_kmp

DescriptionThe French author Georges Perec (1936–1982) once wrote a book, La disparition, without th...
  • jpwang8
  • jpwang8
  • 2016年08月13日 21:54
  • 152

poj3461 KMP模板 或 哈希

kmp模板题,也可用哈希kmp版#include #include #include #include #include #include #include #include #include #in...
  • cdsszjj
  • cdsszjj
  • 2017年07月21日 19:05
  • 79

POJ 3461 Oulipo(KMP求匹配次数)

/* 题意:求某一单词在句子中出现的次数。 做这道题的时候,匹配算法搞了很久,最后终于想明白了,受传统模式匹配算法的影响,认为①处也需要对i做一次变化。 */ #include #include...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【POJ 3461 KMP】
举报原因:
原因补充:

(最多只允许输入30个字)