1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <algorithm> 5 #include <cmath> 6 using namespace std; 7 #define ll long long ...
分类:
其他好文 时间:
2019-01-28 23:56:15
阅读次数:
308
After an uphill battle, General Li won a great victory. Now the head of state decide to reward him with honor and treasures for his great exploit. One ...
分类:
其他好文 时间:
2019-01-28 14:07:02
阅读次数:
128
KMP算法应该是每一本《数据结构》书都会讲的,算是知名度最高的算法之一了,但很可惜,我大二那年压根就没看懂过~~~ 之后也在很多地方也都经常看到讲解KMP算法的文章,看久了好像也知道是怎么一回事,但总感觉有些地方自己还是没有完全懂明白。这两天花了点时间总结一下,有点小体会,我希望可以通过我自己的语言 ...
分类:
编程语言 时间:
2019-01-28 10:59:55
阅读次数:
177
从头到尾彻底理解KMP 从头到尾彻底理解KMP 作者:July 时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。 1. 引言 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,思路混乱导致写也写得混乱。所以一直想找机会 ...
分类:
其他好文 时间:
2019-01-27 21:43:31
阅读次数:
203
初识KMP "例题传送门" KMP算法是一种改进的字符串匹配算法,时间复杂度为O(m+n)。 ? ——百度百科 KMP算法最重要的一个内容就是next数组,它让KMP算法从普通的字符串匹配算法的O(mn)优化到了O(n+m)。 next数组主要的功能就是让两个串匹配失败时,能够快速地找到下一个匹配的 ...
分类:
其他好文 时间:
2019-01-27 19:17:45
阅读次数:
200
题目大意:求字符串的前缀是否为周期串,若是,打印出循环节的长度以及循环次数。 这道题考察的是KMP算法中next数组的应用,必须理解透next[]数组代表的含义才t能通过它解决这道题。思路是先构造出 next[] 数组,下标为 i,定义一个变量 t = i - next[i] 就是next数组下标和 ...
分类:
其他好文 时间:
2019-01-27 10:52:33
阅读次数:
177
假设我们面临这样一个问题:有一个文本串S,和一个模式串P,现在要查找P在S中的位置,怎么查找呢? 如果用暴力匹配 的思路 ,并假设现在文本串S匹配到i位置,模式串P匹配到j位置,则有: ?如果当前字符匹配成功(即S[i]==P[j]) 如果S[5]和P[1]匹配成功,继续执行第一条 匹配失败;j=n ...
分类:
其他好文 时间:
2019-01-27 10:47:48
阅读次数:
181
给出一个只由小写英文字符a,b,c...y,z组成的字符串S,求S中最长回文串的长度. 回文就是正反读都是一样的字符串,如aba, abba等 Input输入有多组case,不超过120组,每组输入为一行小写英文字符a,b,c...y,z组成的字符串S 两组case之间由空行隔开(该空行不用处理) ...
分类:
其他好文 时间:
2019-01-27 01:07:39
阅读次数:
225
自适应AC自动机! 其实就是重载运算符。 感觉别人写的自动机下标之间太多累赘的东西,不如重载运算符。方便编写。 实际上AC自动机就是字典树加上$kmp$算法的精髓,可以对于一个文本串快速匹配多个模式串。时间复杂度$O(\Sigma n+m)$。 cpp include define RP(t,a,b ...
分类:
其他好文 时间:
2019-01-26 17:53:40
阅读次数:
181