哈希和哈希表
前缀函数&&KMP
前缀函数
定义:\(nxt[i]\)
KMP
例题
1.无线传输(luogu4391/ybt1467)
求一个字符串的最短周期
结论:
证明:
两条白线是最长的相等的前缀和后缀
可得
\(1=2,2=3,3=4,4=5......\)
所以周期的长度就是1的长度
也就是\(n-nxt[n]\)
2.power strings(ybt1457/poj2406)
求一个字符串最多是由多少个相同的子字符串重复连接而成的
利用前缀函数的性质解决
结论:
如果\(L\)能被\(L-nxt[L]\)整除就满足题意,个数为除完的结果,否则为1
证明:
合法情况:
不合法情况: