`

kmp裸模版 poj 3461

    博客分类:
  • acm
阅读更多

#include <stdio.h>
#include <string.h>
using namespace std;
const int maxn = 1000000+10;
char s[maxn],t[maxn];
int next[maxn];
int m,n,k,l,i,T;
void get_next(char str[])
{
    memset(next,0,sizeof(next));
    next[1] = 0;
    int len = strlen(str+1),k=0;
    for(int i=2;i<=len;i++)
    {
        if(k>0&&str[i]!=str[k+1])
            k = next[k];
        if(str[i]==str[k+1])
            k++;
        next[i] = k;
    }
}
int kmp(char s[],char t[])
{
    get_next(s);
    int lent = strlen(t+1);
    int lens = strlen(s+1);
    int k=0,ans=0;
    for(int i=1;i<=lent;i++)
    {
        if(k>0&&t[i]!=s[k+1])
            k = next[k];
        if(t[i]==s[k+1])
            k++;
        if(k==lens)
        {
            ans++;
            k = next[k];
        }
    }
    return ans;
}
int main()
{
    scanf("%d",&T);
    while(T--)
    {
        scanf("%s",s+1);
        scanf("%s",t+1);
       printf("%d\n",kmp(s,t));

    }
    return 0;
}
分享到:
评论

相关推荐

    KMP.rar_kmp poj

    《KMP算法在POJ题目中的应用》 KMP(Knuth-Morris-Pratt)算法,是一种在字符串中寻找子串的搜索算法,由Donald Knuth、Vaughan Pratt和James H. Morris三位学者于1970年代提出。在编程竞赛如POJ(Problemset On...

    KMP最经典版本2.9.3.1428版

    KMP是来自韩国的全能播放器,现在虽然还在开发,但原作者已转投potplayer研发,此版本是原作者最后开发的版本,XP下无敌的存在。解压密码:www.nautc.com

    kmp 算法 模版

    kmp 算法 模版 kmp 算法 模版

    poj题目分类

    * KMP 算法:例如 poj1961、poj2406。 4. 搜索: * 最优化剪枝和可行性剪枝。 * 搜索的技巧和优化:例如 poj3411、poj1724。 * 记忆化搜索:例如 poj3373、poj1691。 5. 动态规划: * 较为复杂的动态规划:...

    poj训练计划.doc

    - 字符串处理:如KMP算法和后缀数组,用于字符串搜索和模式匹配,如`poj1035, poj3080`。 - 排序算法:如快速排序和归并排序,用于对数据进行排序,如`poj2388, poj2299`。 - 并查集:用于处理集合的合并和查询...

    KMP算法算法 KMP算法 KMP

    算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP算法 KMP

    poj各种分类

    如Trie树(前缀树)、KMP算法,用于字符串匹配和索引构建,见poj2513和poj1961。 #### 排序 快速排序、归并排序和堆排序等,不仅用于排序,也常用于解决与逆序数相关的问题,如poj2388。 #### 并查集 用于处理集合...

    KMP.rar_KMP_KMP 串匹配_KMP 支持通配符

    《KMP算法与通配符支持在字符串匹配中的应用》 KMP算法,全称Knuth-Morris-Pratt算法,是一种高效的字符串匹配算法,它由Donald Knuth、James H. Morris和 Vaughan Pratt三位学者于1977年提出。在计算机科学中,...

    KMP算法 严蔚敏版

    此程序配合清华大学出版《数据结构(C语言版)》 P83-84页的KMP算法 win tc调试通过

    acm poj300题分层训练

    7. **数学**:poj1286、poj2409等继续深入组合数学,poj1226、poj1961等训练了KMP算法,poj3440、poj3071等涉及概率问题和高斯消元法。 这个训练计划通过精心挑选的题目,逐步提升编程者的算法思维和实现能力,为...

    acm训练计划(poj的题)

    6. **KMP算法**: - (poj1961, poj2406):高效的字符串匹配算法。 ### 十、进阶状态压缩 1. **状态压缩技巧**: - 如何高效地表示和压缩状态。 2. **状态压缩优化**: - (poj3411, poj1724):进一步提高状态...

    POJ 分类题目 txt文件

    例如,题目poj1961和poj2406就是KMP算法的应用实例。 ### 7. 几何算法 几何算法涉及点、线、面的性质和关系,如凸包、最近点对、三角剖分等问题。这些算法在计算机图形学、地理信息系统等领域有着广泛的应用。例如...

    子串定位KMP(加强版)

    子串定位KMP(加强版):深入解析与优化策略 在计算机科学中,字符串匹配算法是处理文本数据的关键技术之一,广泛应用于搜索引擎、DNA序列分析、文本编辑器的拼写检查等多个领域。其中,Knuth-Morris-Pratt算法...

    POJ 我收集的解题报告(100多道)

    【标题】"POJ 解题报告集合"是一个珍贵的学习资源,包含了编程爱好者在解决POJ(Programming Online Judge)平台上的100多道题目后的详细分析与解答。POJ是著名的在线编程竞赛平台,它提供了丰富的算法题目,帮助...

    string-problem(POJ).rar_POJ 19_poj

    2. **POJ1790**:可能涉及字符串的模式匹配,如KMP算法或Boyer-Moore算法,用于在一个字符串中寻找另一个字符串的出现位置。 3. **POJ1951**:可能与字符串的排序有关,比如可以运用Manacher's Algorithm解决最长...

    KMP算法c实现

    KMP(Knuth-Morris-Pratt)算法是一种在文本串(text)中查找模式串(pattern)出现位置的字符串匹配算法。它是由D.E. Knuth、V.R. Morris和J.H. Pratt于1977年提出的。KMP算法避免了模式串在匹配过程中不必要的字符...

    KMP算法详解 KMP算法详解

    KMP算法,全称为Knuth-Morris-Pratt算法,是一种高效的字符串匹配算法,由Donald Knuth、Vaughan Morris和Robert Pratt三位学者提出。它的主要目标是在一个长字符串(主串A)中查找是否存在一个指定的短字符串(模式...

    KMP算法 java版

    ### KMP算法 Java 版详解 #### 一、KMP算法概述 KMP(Knuth-Morris-Pratt)算法是一种高效的字符串匹配算法,由Donald Knuth、James H. Morris和Vaughan Pratt三位计算机科学家共同提出。相较于朴素的字符串匹配...

    kmp.rar_KMP

    KMP(Knuth-Morris-Pratt)算法是一种在文本字符串中高效地查找子串的算法,由D.E. Knuth、V.R. Morris和J.H. Pratt在1970年代提出。这个算法避免了在匹配过程中频繁的回溯,极大地提高了查找效率。在给定的"KMP.rar...

    ACM-POJ 算法训练指南

    5. **字符串匹配**:如KMP算法(poj1961, poj2406)。 ### 十三、进阶算法 1. **组合优化**:如割平面法、分支定界法等(poj3411, poj1724)。 2. **近似算法**:解决NP难问题时的近似求解方法(poj3373, poj1691...

Global site tag (gtag.js) - Google Analytics