KMP算法
Wuliwuliii
谁无暴风劲雨时,守得云开见日明!
展开
-
[USACO15FEB]Censoring S【KMP+单调栈】
题目链接 我们要让S串去删除T串,且不断的删除存在过的T串,所以就是可以用一个单调栈维护一个存在的串,然后因为可能存在删除,所以我们要记录每一位的最大匹配个数。#include <iostream>#include <cstdio>#include <cmath>#include <string>#include <cstring>#include <algorithm>#include <limits&g.原创 2020-07-03 11:06:06 · 245 阅读 · 0 评论 -
A + B Problem 【LibreOJ - 6158】【exkmp/后缀数组DC3】
题目链接 本题我们可以考虑成从后往前的匹配,因为要让后缀最多的为0,不妨就是从后往前按照需求的进行匹配即可,这个很好想,就是细节有点多了。 先是讲讲后缀数组的做法,这里不能用倍增的后缀数组,因为还要带一个log,这样要是写的不好可就TLE了,所以这里用线性复杂度的DC3来写这道题,然后求出height,找到需求串的位置。然后按照sa函数的排名从前往后和从后往前的分别去考虑,进行相同前缀的计算,然后算出对应的前缀的长度和最多允许的长度,然后再看看如果一边是满了的时候,可不可以9或者0的进位(如果前..原创 2020-07-02 15:19:23 · 192 阅读 · 0 评论 -
Power Strings 【POJ - 2406】【KMP】
题目链接假设s可以由t重复k次拼成,即s=tttt……tt,我们称为s=t^k。先给定一个字符串s,求最大的n使得存在t满足s=t^n。 于是,我们可以先知道一个后缀,看看这个字符串是否可以由多个该字符串组成?于是后缀2=后缀1*2,后缀3 = 后缀2 + 后缀1 = 后缀1 * 3。 于是,我们可以利用KMP的next指针,如果现在从第N个向前跳,跳到ff点,那么说明ff + 1到N这段,肯定是和ff前面一段等长的相等,又因为KMP的next的连续传递性,说明ff-(N - ff)到f...原创 2020-05-23 11:15:43 · 340 阅读 · 0 评论 -
Simpsons’ Hidden Talents【KMP模板题】
Homer: Marge, I just figured out a way to discover some of the talents we weren’t aware we had. Marge: Yeah, what is it? Homer: Take me for example. I want to find out if I have a talent in politics...原创 2019-01-15 21:09:02 · 870 阅读 · 0 评论 -
Count the string【KMP】
It is well known that AekdyCoin is good at string problems as well as number theory problems. When given a string s, we can write down all the non-empty prefixes of this string. For example: s: "abab...原创 2019-01-15 20:57:10 · 202 阅读 · 0 评论 -
Milking Grid 【POJ - 2185】【KMP】
题目链接 题意:用最小面积的矩形表示完整个区域,可以有多余。举几个样例:2 8ABCDEFABAAAABAAA ans:122 9accaccaccaccaccdac ans:182 9accaccaccabcdfsegk ans:182 9accacaccaaccacacca ans:5可以大致自己推一下,就会理解了:再来个:3 3a...原创 2019-01-15 13:17:14 · 279 阅读 · 0 评论 -
统计单词数【KMP做法~可以用作KMP的理解题】
题面: 一般的文本编辑器都有查找单词的功能,该功能可以快速定位特定单词在文章中的位置,有的还能统计出特定单词在文章中出现的次数。 现在,请你编程实现这一功能,具体要求是:给定一个单词,请你输出它在给定的文章中出现的次数和第一次出现的位置。注意:匹配单词时,不区分大小写,但要求完全匹配,即给定单词必须与文章中的某一独立单词在不区分大小写的情况下完全相同 (参见样例 1) ,如果给定单词仅是文...原创 2018-10-30 20:34:11 · 724 阅读 · 4 评论 -
字符串匹配的KMP算法(后期不断学习后更新)【学习日记】
(网上的说法)10月24日·第一天的学习学习任务:这天我们先来了解一下什么是KMP,并且先不看代码自己揣测下应该如何去写这样的代码。举例来说,有一个字符串“BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串“ABCDABD”?1。首先,字符串“BBC ABCDAB ABCDABCDABDE”的第一个字符与搜索词“ABCDABD”的第一个字符...原创 2018-10-24 20:38:31 · 639 阅读 · 0 评论 -
Password CodeForces - 126B【KMP深度理解题】
KMP学习更新日志题目链接题意: 给你一串字符串,我们要找到这样的一串子字符串,让他满足既是前缀又是后缀,并且还在中间出现过的最长子字符串,如果没有就输出题目给的那一串东西。 因为我们知道前缀的next[]开始都是从0开始的,所以我们可以不考虑它,然后从后缀看,后缀的next[]不能为0,因为那样就说明不存在这样的答案,所以,我们知道的是后缀肯定在不为0的情况下才有解的可能,接...原创 2018-10-26 16:58:10 · 406 阅读 · 0 评论 -
Common Divisors 【CodeForces - 182D】【KMP~读错题意WA半天】
我的KMP学习日记题目链接题意: 看题意我以为它是要我求的是两个字符串的最小周期的gcd(),后来WA了4发发现好像哪里不大对,毕竟给的样例也太特殊的,然后反复读题,终于读懂它终于要干嘛的了。。。。 题目让我们求的是有几个这样的子字符串,可以恰好的构成原来的这一对字符串,例如“abcabc”与“abcabcabcabcabcabc”可以由"abc"组成也可以由"abcabc"组...原创 2018-10-26 15:48:00 · 179 阅读 · 0 评论 -
Cyclic Nacklace 【HDU - 3746】【KMP补周期】
KMP算法的讲解,自己的领悟可随时提问题目链接题意:有一个字符序列,现在问你:序列后面最少补充几个元素使其恰能成为几个重复循环的序列。题目还是很良心的,让我们求字符串后面放几个字符可以使其变成周期字符串,所以还是可以想到用KMP的next[]数组去计算的。 我们先把周期计算出来,知道可以通过next[]来揣测最后应该放几个的,我们计算出最后一个字符的对应next[]值,然后...原创 2018-10-26 14:02:23 · 123 阅读 · 0 评论 -
Seek the Name, Seek the Fame 【POJ - 2752】【KMP算法next[]的用法拓展】
KMP算法的在线答疑哦题目链接给你一个字符串,问你他的前缀子串,就是说例如有一组字符串“asdasdasd”可以推出->“asdasd”->“asd”,其实就是问你next[]数组向前回溯过程所能遍历的值,然后倒过来输出即可。#include <iostream>#include <cstdio>#include <cmath>#...原创 2018-10-26 13:07:16 · 177 阅读 · 0 评论 -
Period 【HDU - 1358】【KMP求周期】
学习KMP算法可以参阅这篇文章,不懂的可以在线回答题目链接题意:我们想知道一串字符中的前缀中有多少最大周期数,例如“aaa”中,前两个“aa”最小周期长度为“a”,所以周期长度为2,前三个“aaa”的最小周期也是“a”所以周期长度为3;再如“aabaabaabaab”中前6个“aabaab”的最小周期长度为“aab”,所以周期为2......。 这道题就是要理解KMP的运行过程才...原创 2018-10-26 10:47:10 · 341 阅读 · 0 评论 -
剪花布条 【HDU - 2087】【KMP模板题】
KMP教学链接,不懂的可以在线问题意:2个字符串A,B.问A中有多少个字符串B.Input输入中含有一些数据,分别是成对出现A,BA和B不会超过1000个字符。如果遇见#字符,则表示测试结束。 Output输出B的个数,每个结果之间应换行。KMP模板题: #include <iostream>#include <cstdio>#...原创 2018-10-25 20:10:32 · 167 阅读 · 0 评论 -
Number Sequence 【HDU - 1711】【KMP模板】
不懂KMP可以看这篇文章哦,我在线会回的题目链接题意:给出两个数字序列 : a[1], a[2], ...... , a[N], 和 b[1], b[2], ...... , b[M] (1 <= M <= 10000, 1 <= N <= 1000000). 你的任务是找到一个数字K满足: a[K] = b[1], a[K + 1] = b[2], ........原创 2018-10-25 19:39:49 · 184 阅读 · 0 评论