题目链接

基础KMP题,本文提供一段能AC并且便于调试以及查看next数组的代码。

参考博客

http://blog.csdn.net/v_july_v/article/details/7041827

http://www.cnblogs.com/kuangbin/archive/2012/08/14/2638803.html

#include<iostream>
#include<cstring>
using namespace std;

;
int next[N];
char S[N],T[N];        //T为模式串,S为主串
int slen,tlen;

//    第一步先学习写好这个函数
int KMP_Index()
{
    ,j=;
    while(i<slen&&j<tlen)
    {
        ||S[i]==T[j])
            i++,j++;
        else
            j=next[j];
    }
    if(j==tlen)
        return i-tlen+1;  //标号从0开始
    else
        ;
}
//    第二步学习写好这个函数
int KMP_Count()
{
    ;
    ;
    &&tlen==)
        ]==T[];
    ;i<slen;i++)
    {
        &&S[i]!=T[j])
            j=next[j];
        if(S[i]==T[j])
            j++;
        if(j==tlen)
        {
            ret++;
            j=next[j];
        }
    }
    return ret;
}
//    第三步,本着满足前两个函数的需求这一目标,来学习写好这个函数
//    而这一步,正是KMP算法精华所在
void getNext()
{
    int j,k;
    j=;k=-;next[]=-;
    while(j<tlen)
        ||T[j]==T[k])
            next[++j]=++k;
        else
            k=next[k];
}
void printNext()
{
    ;i<tlen;i++)
        printf("%3c",T[i]);
    puts("");
    ;i<tlen;i++)
        printf("%3d",next[i]);
    puts("");
}
int main()
{
//    while(cin>>T)
//        tlen=strlen(T),getNext(),printNext();
    int tt;cin>>tt;
    while(tt--)
    {
        cin>>T>>S;
        slen=strlen(S);
        tlen=strlen(T);
        getNext();
        printNext();
        cout<<KMP_Count()<<endl;
//        for(int i=0;i<tlen;i++)
//            printf("%d",next[i]);
//        puts("");
//        cout<<"模式串T在主串S中首次出现的位置是: "<<KMP_Index()<<endl;
//        cout<<"模式串T在主串S中出现的次数为: "<<KMP_Count()<<endl;
    }
}

poj_3461: Oulipo的更多相关文章

  1. C++之路进阶——poj3461(Oulipo)

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 35694   Accepted: 14424 Descript ...

  2. poj3461 Oulipo(KMP模板)

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 17795   Accepted: 7160 Descripti ...

  3. Match:Oulipo(POJ 3461)

     Oulipo 题目大意:给你一个字符串,要你找到字符串包含指定子串的个数 只要你知道了KMP,这一题简直不要太简单,注意STL的string是会超时的,还是乖乖用char吧 #include < ...

  4. KMP算法 hdu4686 Oulipo

    Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...

  5. hdu----1686 Oulipo (ac自动机)

    Oulipo Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Subm ...

  6. 字符串hash - POJ 3461 Oulipo

    Oulipo Problem's Link ---------------------------------------------------------------------------- M ...

  7. POJ 3461 Oulipo

      E - Oulipo Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit ...

  8. Oulipo (kmp)

    Oulipo Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 26857   Accepted: 10709 Descript ...

  9. POJ 3461 Oulipo(乌力波)

    POJ 3461 Oulipo(乌力波) Time Limit: 1000MS   Memory Limit: 65536K [Description] [题目描述] The French autho ...

随机推荐

  1. javaSE_05Java中方法(函数)与重载、递归-练习

    1.使用的递归的方法求5! public class DiGui{ public static void main(String[] args){ //使用的递归的方法求5! System.out.p ...

  2. 学习web前端怎样入门?初学者赶紧看过来!

    web前端怎么样才能入门,首先我们要从什么是初级web前端工程师说起: 按照我的想法,我把前端工程师分为了入门.初级.中级.高级这四个级别, 入门级别指的是了解什么是前端(前端到底是什么其实很多人还是 ...

  3. openvpn实现内网 映射到 外网

    openvpn实现内网 映射到 外网 场景介绍: 机器介绍 本地一台Ubuntu服务器A , 处于内网中 , 无外网IP 外网一台Ubuntu服务器B , 外网地址139.199.4.205 目标 : ...

  4. MyBB 18 SQL Injection Vulnerability

    <?php error_reporting(0); ?> <form method="post" action=""> Input a ...

  5. 9个常用iptables配置实例

    iptables命令可用于配置Linux的包过滤规则,常用于实现防火墙.NAT.咋一看iptables的配置很复杂,掌握规律后,其实用iptables完成指定任务并不难,下面我们通过具体实例,学习ip ...

  6. Vulkan Tutorial 15 Framebuffers

    操作系统:Windows8.1 显卡:Nivida GTX965M 开发工具:Visual Studio 2017 我们在前面的章节中已经讨论了很多次framebuffers帧缓冲区,到目前为止我们配 ...

  7. vue初学实践之路——vue简单日历组件(1)

    ---恢复内容开始--- 最近做的项目有一个需求,需要有一个日历组件供预定功能使用,之前的代码过于繁琐复杂,所以我采用vue重写了这个组件. npm.vue等等安装. 只是一个简单的日历组件,所以并不 ...

  8. Web压力测试软件webbench

    官方网站:http://home.tiscali.cz/~cz210552/webbench.html下载地址:http://home.tiscali.cz/~cz210552/distfiles/w ...

  9. [0] AssemblyInfo.cs文件介绍

    AssemblyInfo.cs文件:包含程序版本.信息.版权的属性文件 先介绍AssemblyInfo.cs文件中的程序集属性 内容: using System.Reflection;using Sy ...

  10. input响应慢问题解决办法

    input[file]标签的accept属性可用于指定上传文件的 MIME类型 . 例如,想要实现默认上传图片文件的代码,代码可如下: <input type="file" ...