题目链接: https://vjudge.net/contest/70325#problem/B

题意: 输出模式串在主串中出现的次数

思路: kmp模板

在 kmp 函数中匹配成功计数加一, 再令 j = nxt[j] 即可.

感觉有点奇怪的就是我拿 A 题的模板写这题居然会 tle, 而拿这题的模板写 A 题又没有 A 题的模板跑的快...可能是数据特殊吧:) .

代码:

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 using namespace std;
 5
 6 const int MAXN = 1e6 + 10;
 7 char a[MAXN], b[MAXN];
 8 int nxt[MAXN], n, m;
 9
10 void get_nxt(void){
11     memset(nxt, 0, sizeof(nxt));
12     int j = -1, i = 0;
13     nxt[0] = -1;
14     while(i < m){
15         if(j == -1 || b[j] == b[i]){
16             nxt[i + 1] = j + 1;
17             i++;
18             j++;
19         }else j = nxt[j];
20     }
21 }
22
23 int kmp(void){
24     get_nxt();
25     int i = 0, j = 0, ans = 0;
26     while(i < n && j < m){
27         if(j == -1 || a[i] == b[j]){
28             i++;
29             j++;
30         }else j = nxt[j];
31         if(j == m){
32             ans++;
33             j = nxt[j];
34         }
35     }
36     return ans;
37 }
38
39 int main(void){
40     int t;
41     scanf("%d", &t);
42     while(t--){
43         scanf("%s%s", b, a);
44         n = strlen(a);
45         m = strlen(b);
46         printf("%d\n", kmp());
47     }
48     return 0;
49 }

View Code

转载于:https://www.cnblogs.com/geloutingyu/p/7327491.html

kuangbin专题16B(kmp模板)相关推荐

  1. kuangbin专题十二 基础DP

    kuangbin专题十二 基础DP A - HDU1024 Max Sum Plus Plus B - HDU1029 Ignatius and the Princess IV C - HDU1069 ...

  2. [kuangbin]专题九 连通图 题解+总结

    kuangbin专题链接:https://vjudge.net/article/752 kuangbin专题十二 基础DP1 题解+总结:https://www.cnblogs.com/RioTian ...

  3. 老鱼的-kuangbin专题题解

    kuangbin专题问题一览 专题一 简单搜索 POJ 1321 棋盘问题 POJ 2251 Dungeon Master POJ 3278 Catch That Cow POJ 3279 Flipt ...

  4. Phpcms v9专题分类增加模板设置的方法

    Phpcms v9专题设置里面,默认专题子分类是无模板设置的,本文教你通过官方论坛给出的教程实现专题分类增加模板设置.先来看看默认专题子分类设置界面: 修改后的的专题子分类设置界面多了模板设置: 修改 ...

  5. HDU 1711 Number Sequence(KMP模板)

    http://acm.hdu.edu.cn/showproblem.php?pid=1711 这道题就是一个KMP模板. 1 #include<iostream> 2 #include&l ...

  6. POJ:3461-Oulipo(KMP模板题)

    原题传送:http://poj.org/problem?id=3461 Oulipo Time Limit: 1000MS Memory Limit: 65536K Description The F ...

  7. 扩展KMP模板(学习)

    学习链接:https://www.luogu.org/problemnew/solution/P5410 一.引言 一个算是冷门的算法(在竞赛上),不过其算法思想值得深究. 二.前置知识 kmp的算法 ...

  8. Oulipo(欧力波)(经典kmp模板题) HDU-1686

    题目:Oulipo(欧力波) 中文大意 The French author Georges Perec (1936�C1982) once wrote a book, La disparition, ...

  9. kuangbin 专题一 简单搜索

    kuangbin 专题一 简单搜索 1.POJ1321棋盘问题[DFS] 代码 自己的想法 2.POJ2251Dungeon Master[三维空间BFS] 代码 自己的想法 3.POJ3278 Ca ...

最新文章

  1. 成为一个优秀的前端工程师,其实你也可以!
  2. 评选 cms_十大评选和编辑精选:12月评论
  3. mysql plus baomidou_com.baomidou.mybatisplus.core.mapper 不存在
  4. mongodb导出csv文件到vcf
  5. mingw64镜像网站
  6. php微信公众号回复换行,PHP 微信公众号开发,关键字回复使用switch出错
  7. 图扑案例合集丨用赛博朋克语言诠释数字孪生
  8. 细节复盘2 (图片放足够大高斯模糊< style > scopedvue打开新的页面轮播图抖动的问题 translateZ、translateY、垂直水平居中)2020-8-1
  9. 生命即便卑微如尘,即便困顿,依然是美景。
  10. linux脚本编程for,谢烟客---------Linux之bash脚本编程---if补充和for循环
  11. java队名,《JavaWeb程序开发入门》课后练习(含答案)
  12. 微信旧岛小程序章节目录
  13. 韩顺平 2021零基础学Java 学习笔记(2)(自用)
  14. RK3568全国产化主板---LYM_RK3568G_EVM全新发布
  15. lisp填挖横断面提取_求助,AUTOLISP语言的这个程序流程图怎么写。关于纵横断面绘制的...
  16. linux下打开windows txt文件中文乱码问题
  17. HDU 1427 速算24点(DFS) *
  18. Linux无界面新建Oracle数据库实例
  19. 这是不是你在找的【电销帮手】——人机耦合佳信静默机器人
  20. pytz实现时区的转换

热门文章

  1. poj12月其他题解(未完)
  2. 工作流编程循序渐进(9:使用本地服务在宿主和工作流之间通信)
  3. php拍照从手机相册中选择,微信js-sdk预览图片接口及从拍照或手机相册中选图接口用法示例...
  4. 数据结构显示树的所有结点_您需要了解的有关树数据结构的所有信息
  5. 计算机系统的分类补充完整,数据库系统原(理B)13春A卷.doc
  6. react构建淘票票webapp,及react与vue的简单比较。
  7. 找子串替换(kmp)poj1572
  8. HQL中的Like查询需要注意的地方
  9. c语言-01背包问题
  10. 理解LoadRunner中的局部变量和全局变量