`
digiter
  • 浏览: 118625 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

KMP算法模板

    博客分类:
  • ICPC
阅读更多
// bjtu1394.cpp
#include <cstdio>
#include <cstring>
#include <cmath>
#include <cstdlib>
#include <iostream>
#include <algorithm>
#include <vector>
#include <map>
#include <set>
#define out(v) cout << #v << ": " << (v) << endl
#define SZ(v) ((int)(v).size())
using namespace std;
typedef long long LL;

int CS;
char W[10000 + 5];
char T[1000000 + 5];
int LW, LT;
int next[10000 + 5];
void getnext()
{
	next[0] = -1;
	// 算到LW是有必要的,多次匹配时会用到 
	for (int i = 1, j = -1; i <= LW; ++i) {
		while (j != -1 && W[j] != W[i - 1]) j = next[j];
		next[i] = ++j;
	}
}

int main()
{
	scanf("%d", &CS);
	getchar();
	while (CS--)
	{
		gets(W); LW = strlen(W);
		gets(T); LT = strlen(T);
		getnext();
		
		int i = 0, j = 0, cnt = 0;
		while (i < LT)
		{
			while (j != -1 && T[i] != W[j]) j = next[j];
			++i, ++j;
			if (j == LW) {
				++cnt;
				j = next[j];
			}
		}
		printf("%d\n", cnt);
	}
	return 0;
}
分享到:
评论

相关推荐

    KMP算法模板-c++

    KMP算法的板子

    kmp算法模板与应用.txt

    kmp算法模板与应用.txt

    KMP算法实现模板(c++版)ACM算法

    acm算法模板之kmp模板,对关键代码做了注释,帮助小白理解

    C++实现的KMP算法

    用C++语言实现的KMP算法。经过调试。供广大算法学习者参考。

    kmp算法模板

    kmp 算法

    C++ kmp算法模板代码解读

    C++编程语言虽然功能强大,应用方式灵活,但是在实际编程中同样会出现各种各样的错误。在这里我们将会为大家详细介绍一下有关C++指针漂移的解决方法,希望本文介绍的内容可以帮助大家解决问题。

    kmp 算法 模版

    kmp 算法 模版 kmp 算法 模版

    KMP算法模板【字符串匹配】

    开源学习吧,大家觉得有什么可以改的可以私信或者私聊我喔,我里面也有一点小bug,目前不知道怎么解决,有大佬可以解释的话,万分感谢捏。终于搞懂KMP了,不容易呀,哈哈哈哈!

    acm竞赛KMP算法

    本人写的kmp算法模板,能够给新手直接套模板减少写代码的时间,希望对大家有帮助

    【基础】KMP算法详解.pdf

    本文介绍了KMP算法的原理和基本实现方法,附带算法模板的代码和详解。如想了解更多内容,欢迎关注微信公众号:信息学竞赛从入门到巅峰。

    KMP算法(模板)

    KMP算法主要用于计算字符串间的匹配,可以说是ACM竞赛中经常出现的问题,掌握了模板,遇到问题迎刃而解

    常用算法模板_C++.zip

    常用算法模板_C++.zip AC自动机,Dijkstra,Floyd,GCD,KMP,KMP扩展,Kruskal,LCM,LCS,LIS,Prim,SPFA,埃氏筛,背包,并查集,多边形面积,二分搜索,高精度加法,高精度阶乘,级角排序,进制转换,快速幂,...

    ACM 算法模板集

    ACM 算法模板集 Contents 一. 常用函数与STL 二. 重要公式与定理 1. Fibonacci Number 2. Lucas Number 3. Catalan Number 4. Stirling Number(Second Kind) 5. Bell Number 6. Stirling's Approximation 7. Sum of ...

    KMP 算法实例详解

    KMP算法,是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。 分析:KMP模板题、KMP的关键是求出next的...

    KMP.zip_字符模板

    算法,字符串进阶,KMP算法题以及模板,ACM题,KMP模板

    上海交通大学ACM算法模板

    用于打比赛的ACM算法模板 常用函数与STL 重要公式与定理 1. Fibonacci Number 2. Lucas Number 3. Catalan Number 4. Stirling Number(Second Kind) 5. Bell Number 6. Stirling's Approximation 7. Sum of ...

    数据结构算法

    树状数组 经典算法题每日演练——第九题 优先队列 经典算法题每日演练——第八题 AC自动机 经典算法题每日演练——第七题 KMP算法 经典算法题每日演练——第六题 协同推荐SlopeOne 算法 经典算法题每日演练——第五...

    北航软院17级算法上机自用模板

    北航17级算法上机自己整理的模板,发给大家参考(动态规划、贪心、计算几何、最大流、二分图最大匹配、归并排序、FFT、KMP)

    ACM算法模板和pku代码

    本科参加ACM竞赛的过程中积累下来的一部分算法模板,和自己在PKU上面做的一部分题目。 模板目录结构: 目录: 动态规划 O(n^2)的最长上升子序列 nlogn最长上升子序列 高精度 计算几何 Graham扫描法 两线段交点 凸...

Global site tag (gtag.js) - Google Analytics