kmp
Self-Discipline
在校大学生
展开
-
kmp算法模板
#include<iostream> #include<algorithm> #include<cstring> using namespace std; void getNext(char *s,int *next){ int i=0,j=-1,len=strlen(s); next[0]=-1; while(i<len){ ...原创 2017-09-23 15:05:21 · 204 阅读 · 0 评论 -
UVALive3026 Period 周期(KMP 最小循环节)
题意:给定一个长度为n的字符串S,求它每个前缀的最短的循环节,换句话来说,对于每个i,求一个最大的整数k>1,使得S的前i个字符组成的前缀是某个字符串复制k次得到的,输出所有存在的k的i和对应的k。 思路:详见《训练指南》P213,如果这i个字符组成一个周期串,那么循环节就是(i-f[i]),f[i]对应KMP的next[]数组。 代码: #include<bits/stdc+...原创 2019-07-09 11:42:50 · 163 阅读 · 0 评论 -
Codeforces 432D 完美子串(kmp+dp or 后缀树组)
题意:给出一个字符串,求所有既是前缀串又是后缀串的字符串出现了几次。 分析:考察对next数组的理解。 参考https://blog.csdn.net/huanghongxun/article/details/53209004、https://blog.csdn.net/hfl030/article/details/79858464、https://www.cnblogs.com/dabai5...原创 2019-08-11 00:32:43 · 311 阅读 · 0 评论