从头到尾彻底理解KMP 作者:July 时间:最初写于2011年12月,2014年7月21日晚10点 全部删除重写成此文,随后的半个多月不断反复改进。 1. 引言 ? ? 本KMP原文最初写于2年多前的2011年12月,因当时初次接触KMP,...
分类:
其他好文 时间:
2014-08-17 18:41:53
阅读次数:
428
KMP KMP算法主要用于字符串匹配中的单串匹配 next函数:表示当前字符失配时,应从模式串的第几位开始匹配(越大越好)。即模式串的前缀与以t[i]为结尾的后缀的最长相同部分的长度。 代码如下(pascal) var s,t:string; next,ans:array[0..100] of lo...
分类:
其他好文 时间:
2014-08-17 12:55:12
阅读次数:
234
Problem Description
The French author Georges Perec (1936–1982) once wrote a book, La disparition, without the letter 'e'. He was a member of the Oulipo group. A quote from the book:
Tout avait...
分类:
其他好文 时间:
2014-08-16 19:50:11
阅读次数:
239
当天下午3点拿到jcvb现场发来的数据,本地自测100+100+30=230。BUAA成绩60+60+30=150。sad story~动物园 zoo既是它的后缀同时又是它的前缀,并且该后缀与该前缀不重叠,将这种字符串的数量记作num[i]。偌大的提示:kmp! 思路很简单,求出next数组,你会发...
分类:
其他好文 时间:
2014-08-16 18:30:20
阅读次数:
469
这题 做的时候 肯定自己短路了...一开始 拿到手 思考了下 我就想 暴力做了...我是想到kmp了 但我考虑错了 对于跳出循环那边 想错了 艹....然后 就暴力 tle tle 。。。然后 我去看了下 别人的解题报告 顿悟啊...直接贴别人的AC代码吧 不想写了 心累啊 1 #include ....
分类:
其他好文 时间:
2014-08-15 22:25:59
阅读次数:
317
spoj1811LCS
问两个字符串最长公共子串。
做法很简单。匹配成功,则tl++,失败,从父指针回退,tl=t[now].len。
从这题可以清楚了解后缀自动机fa指针的性质:
指向一个状态,这个状态的接受串s[x..x+i]是与当前状态的接受串后缀s[j-i..j]匹配是最长的一个。
这里是不是发现了一个和KMP很像的性质?
KMP在失配时通过next数组回退,那么这...
分类:
其他好文 时间:
2014-08-15 21:11:29
阅读次数:
281
hdu 4300 Clairewd’s message(详解,扩展KMP)...
分类:
其他好文 时间:
2014-08-15 16:01:39
阅读次数:
274
# include
# include
# include
using namespace std;
int next[100];
char pat[100];
char a[100][100];
int ma;
int lenp;
int n;
void Getnext()
{
int i=0,j=-1;
next[0]=-1;
while(i<=lenp)
...
分类:
其他好文 时间:
2014-08-15 16:01:18
阅读次数:
176