/*题意:给两个字符串a,s,判断a在s里出现的个数*/#include <stdio.h>
#include <string.h>int next[10005];
char a[10005];
char s[1000005];
int n,len_a,len_s;void Get_Next()
{a[0] = '#';//因为是a+1,如果a[0]不存在,那strlen(a) = 0 ;       !!!!!!!!!!!len_a = strlen(a);len_s = strlen(s);next[1] = 0;int j = 0;for(int i=2;i<=len_a;i++){while(j > 0 && a[j+1] != a[i])//  j+1要理解,j因为要连续向前找next[j],而不是j+1j = next[j];if(a[j+1] == a[i])j++;next[i] = j;}
}int Str_Match()
{//跟Get_Next类似,理解后可手写!int j = 0;int num = 0;for(int i=0;i<len_s;i++){while(j>0 && a[j+1]!=s[i])j = next[j];if(a[j+1] == s[i])j++;if(j == len_a - 1){j=next[j];num++;}}return num;
}int main()
{scanf("%d",&n);while(n--){getchar();scanf("%s %s",a+1,s);//!!!!这用的是a+1,为的是字符串位置跟实际位置相对应,函数好写一点Get_Next();printf("%d\n",Str_Match());}return 0;
}

转载于:https://www.cnblogs.com/cykun/archive/2011/02/19/1958627.html

hdu 1686(标准的kmp,可当模板)相关推荐

  1. HDU 1686 Oulipo【kmp求子串出现的次数】

    The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e ...

  2. Oulipo HDU - 1686 (使用扩展kmp进行讨伐!)

    题目链接 题意:给你两个字符串s,t.让你求在s中t出现了多少次. 解题思路: kmp做法点这里 使用扩展kmp.构建一个新字符串k=t+▲+s ▲为分隔符,保证不会影响s求z函数. 对k使用扩展km ...

  3. hdu 1686 Oulipo(kmp)

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

  4. KMP - Oulipo - HDU - 1686

    HDU - 1686 The French author Georges Perec (1936–1982) once wrote a book, La disparition, without th ...

  5. HDU - 1686 Oulipo

    https://vjudge.net/problem/HDU-1686 HDU - 1686 Oulipo 题目 分析 AC代码 题目 The French author Georges Perec ...

  6. tcs标准编写软件_【公益培训】知你所需 | 标准编写格式及TCS模板应用线上公益培训...

    企业标准编写的水平及TCS工具使用的能力是实施企业标准化工作的基础.TCS标准编写软件是辅助标准编写的工具性软件,方便标准编写人员快捷准确的编写标准草案,有效提升标准供给质量. 为贯彻落实疫情防控和助 ...

  7. AT32标准库(BSP)模板建立(开发笔记)

    AT32标准库(BSP)模板建立 环境声明: Keil版本:Keil 5.25 芯片型号:AT32F403A AT Pack版本:Pack_Keil_AT32F4xx_V1.3.6 1. 新建一个工程 ...

  8. Oulipo HDU - 1686 (kmp初见讨伐!)

    题目链接 题意:给你两个字符串s,t.让你求在s中t出现了多少次. 解题思路: 先写前缀函数(前缀函数的写法点这里了解) 然后就是常规KMP模板了.统计答案时重置pos_t的位置. 错误原因:对重置p ...

  9. HDU 1686 [KMP] --by二汪

    题目链接 /* --------------KMP算法-------------- 用于在字符串S中匹配字符串T注: 此模板的字符串都是从第0位开始存的 但返回和输出的位置都是以第1位为开始的!! * ...

最新文章

  1. linux离线安装服务 =====Ubuntu16.0.4 离线部署Openssh
  2. 【深度学习】深度学习经典数据集汇总
  3. .NET 深度指南:Colors
  4. flowable 账号密码加密
  5. GP学习整理(一)—Geoprocessing assembly and Geoprocessor managed assembly
  6. 在控制用' * '台画一个圆形图案
  7. PySpark-Recipes : RDD对象的基本操作
  8. Objective-c 开发环境
  9. 如何用vrml技术实现虚拟计算机组装实验,虚拟现实技术在计算机组装教学中的应用研究...
  10. 支付业务与技术架构学习总结(1)——完整的支付系统整体架构
  11. 见证蓝创十年庆典,与创业者共成长
  12. FDD与TDD的区别
  13. 12 HotKey问题
  14. ELK学习遇到的问题3--ERROR pipeline/output.go:100 Failed to connect to backoff(elasticsearch..
  15. 生活,令人满意的生活,丰富的生活包括了起起落落,包括了痛苦和再次振作,包括了失败和再次奋
  16. 使用metalink批量下载sentinel数据
  17. java中date和时间戳相互转换以及获取前一个小时的时间
  18. excel手机版_微软的新办公利器,这才是手机办公该有的亚子!
  19. 为什么有的公司会规定所有接口都用 POST请求?
  20. html字体下划线下移,CSS下划线与文字间距距离设置(CSS文字下划线距离设置)

热门文章

  1. C ++标准是否允许未初始化的bool使程序崩溃?
  2. 如何将JavaScript日期转换为UTC?
  3. 如何使用Java将字符串保存到文本文件?
  4. 简易新闻客户端android
  5. android 5.0 字体,QC8916 修改系统默认字体(Android 5.0)
  6. 洛谷——P1765 手机
  7. 边框的复合写法(HTML、CSS)
  8. 使用SQL编程创建100万条数据测试索引
  9. three.js使用OrbitControls.js控制几何体旋转、平移、缩放
  10. python中实现上下文管理器的两种方法