
KMP
Huglight
这个作者很懒,什么都没留下…
展开
-
POJ 2406 Power Strings KMP 最小循环节
题意:给出一个字符串,求出字符串中重复次数最多的子串的重复次数思路:在复习一遍,n-fail[n]表示长度为n的字符串中最小循环节的长度,首先求出fail数组,再求出串中最小循环节长度,若长度可被总长整除,则答案即为总长/循环节长度,否则就是1#include<iostream>#include<cstdio>#include<cmath>#inclu...原创 2019-12-25 21:50:07 · 198 阅读 · 0 评论 -
HDU 2087 剪花布条 KMP
题意:给一串字符串,和一串模式串,求出原串可以剪出多少个模式串思路:KMP匹配成功后返回模式串头继续匹配原串下一个字符#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<vector>#include<queue>...原创 2019-08-18 16:19:52 · 135 阅读 · 0 评论 -
HDU 1711 Number Sequence KMP
题意:给两串序列,求出第二串序列在第一串序列中第一次出现的位置(序列头在第一串序列中的位置),不存在则输出-1思路:KMP算法裸题。KMP算法维护一个fail数组,储存某点之前的最长公共前缀后缀的位置,若匹配到某点时失配,则不会从匹配序列头开始重新匹配下一个待配字符,而是从fail指针指向的节点开始匹配。AC自动机就是利用这个原理在Trie树上改进得到的。#include<iostrea...原创 2019-08-17 11:41:13 · 142 阅读 · 0 评论 -
HDU 1686 Oulipo KMP
题意:给出一个模式串和一个待匹配串,求模式串在待匹配串中出现的次数思路:KMP匹配成功后答案+1,返回fail位置继续匹配直到匹配到待匹配串尾#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<vector>#include&l...原创 2019-08-17 14:43:09 · 149 阅读 · 0 评论 -
HDU 3746 Cyclic Nacklace KMP 最小循环节
题意:给一串序列,求出在后面最少补多少个字符,使得序列变为循环重复的几个序列思路:对序列求fail数组,n-fail[n]即为最小循环节的长度。取k=n-fail[n],当n%k==0时,序列自己就重复,不需添加;fail[n]==0时,序列到末尾没有自重复的序列,添加元素大小即为序列长度;其他情况,即序列中有一部分自重复序列,就添加还缺的那部分即可#include<iostream&g...原创 2019-08-28 19:51:57 · 155 阅读 · 0 评论 -
HDU 1358 Period KMP 循环节
题意:给一串序列,求出序列所有前缀中所有循环次数大于1的前缀长度及该前缀中循环节循环次数思路:从1到n递增序列长度,若当前长度中存在循环节,且循环次数大于1,则输出#include<iostream>#include<cstdio>#include<cmath>#include<cstring>#include<vector>...原创 2019-08-28 20:13:44 · 158 阅读 · 0 评论