KMP
文章平均质量分 56
滑稽大佬
这个作者很懒,什么都没留下…
展开
-
POJ 2406 Power Strings
目录 分析: 代码: 分析: 实际上,求最大的串联的次数,等价于求字符串的最小周期内包含的字符数,字符串a的周期肯定是大于等于1的,那么我用两个字符串a相串联,他们构成的新串为b,那么这个时候我以b串为主串,a串为模串,当第一次匹配成功时,ANSWER=主串b上所走过的字符数减去-原字符串a的长度。 其实这个是很好证明的。因为b串是由两个a串组成的,那么b串的最小周期内...原创 2018-05-31 16:44:53 · 399 阅读 · 0 评论 -
POJ 2752 Seek the Name, Seek the Fame
目录: 分析: 代码: 分析: 这道题目只要是学过KMPKMPKMP算法的童鞋们,应该做起来都不难,也就是考察了学生的基础KMPKMPKMP,这里就不过多赘述了 代码: #include<cstdio> #include<cstring> #include<iostream> #include<cmath> ...原创 2018-05-31 16:47:52 · 115 阅读 · 0 评论 -
洛谷 P3435 [POI2006]OKR-Periods of Words
目录: 题目: 分析: 代码: 题目: 传送门 分析: 先把题面转成人话: 对于给定串的每个前缀iii,求最长的,使这个字符串重复两边能覆盖原前缀iii的前缀(就是前缀i的一个前缀),求所有的这些“前缀的前缀”的长度和 利用nextnextnext的性质:前缀iii的长度为next[i]next[i]next[i]的前缀和后缀是相等的 这说明:如果有ii...原创 2018-08-17 21:07:26 · 267 阅读 · 0 评论 -
洛谷 P2375 [NOI2014]动物园
目录: 题目: 分析: 代码: 题目: 传送门 分析: 前缀和后缀互不相交,其实就是说next[i]next[i]next[i]必须≤[i/2]≤[i/2]≤[i/2],([][][ ]表示向下取整)。 那么就先求出一个正常的nextnextnext数组,然后再多增加一个循环,与求nextnextnext数组很像,只不过多了一行,保证nextnextnex...原创 2018-08-17 21:12:14 · 205 阅读 · 0 评论 -
POJ P1961 Period
目录: 题目: 分析: 代码: 题目: 传送门 分析: 通过普通的KMPKMPKMP算法求出nextnextnext数组,然后根据nextinextinext_i求出111——iii的循环元,同理,在循环元中求出最小循环元即可 代码: #include<iostream> #include<cstdio> #includ...原创 2018-08-17 21:18:58 · 123 阅读 · 0 评论 -
SSLOJ 1217.So many prefix?
玄学之门题目:分析:代码: 题目: 传送门 分析: 首先显然的是从第一位开始,每个偶数位对应的前缀一定是一个答案,那我们记f[i]=1(i%2==0)f[i]=1(i\%2==0)f[i]=1(i%2==0) 然后我们考虑KMPKMPKMP的过程,后面串匹配前缀,所以如果他能匹配到一个偶数,也就是说next[j]=i(i%2==0)next[j]=i(i\%2==0)next[j]=i(i%2...原创 2018-10-26 20:10:05 · 137 阅读 · 0 评论