字符串算法有哪些呢???Tire,KM,KMP,AC自动机,后缀数组,后缀自动机,RK,Shift-And/Or,Manacher.....?这么这么多啊!!!也只能慢慢学了。。。接下来的题是按我做题顺序来排的,难度的话我就不理了(`?ω?´)BZOJ 2434: [NOI2011]阿狸的打字机第一...
分类:
其他好文 时间:
2014-12-28 20:42:24
阅读次数:
197
Manacher算法
算法总结第三弹 manacher算法,前面讲了两个字符串相算法——kmp和拓展kmp,这次来还是来总结一个字符串算法,manacher算法,我习惯叫他 “马拉车”算法。
相对于前面介绍的两个算法,Manacher算法的应用范围要狭窄得多,但是它的思想和Z算法有很多共通支出,所以在这里介绍一下。Manacher算法是查找一个字符串的最长回文子串的线性算法。
在介绍算法...
分类:
编程语言 时间:
2014-12-21 16:38:53
阅读次数:
226
字符串逆转void reverse(char* str,int beg,int end){ int times = (end- beg +1)/2; while(times > 0) { char tmp = str[end]; str[end--] =...
分类:
编程语言 时间:
2014-10-26 16:52:45
阅读次数:
114
举例说明:S: ababcababaP:ababaKMP算法之所以叫做KMP算法是因为这个算法是由三个人共同提出来的,就取三个人名字的首字母作为该算法的名字。其实KMP算法与BF算法的区别就在于KMP算法巧妙的消除了指针i的回溯问题,只需确定下次匹配j的位置即可,使得问题的复杂度由O(mn)下降到O...
分类:
其他好文 时间:
2014-08-20 12:26:52
阅读次数:
208
简介字符串的处理几乎无处不在,常用的字符串算法有KMP、扩展KMP、Trie树、AC自动机、Manacher、哈希、SA、SAM等。Knuth-Morris-Pratt 算法给你两个字符串AB,询问B串是否是A串的子串(A串是否包含B串)。可以枚举从A串的什么位置起开始与B匹配,然后验证是否匹配。假...
分类:
其他好文 时间:
2014-08-13 12:52:06
阅读次数:
291
这题跟HDU 1358 Period (KMP)
差不多,稍微修改代码就行了。
关于KMP的更多知识,请关注从头到尾彻底理解KMP(2014年8月4日版)
。
#include
#include
int n,next[1000000];
char p[1000000];
void getnext()
{
int k=0,j=1;
next[0]=-1;next[1]=0;
...
分类:
其他好文 时间:
2014-08-06 14:48:01
阅读次数:
204
题目就是给一个字符串问最少插入多少个字符能让原字符串变为回文字符串。算法:用原串的长度减去原串与翻转后的串的最大公共字串的长度,就是所求答案。 1 //#define LOCAL 2 #include 3 #include 4 #include 5 #include 6 using name...
分类:
其他好文 时间:
2014-07-31 12:24:36
阅读次数:
220