雜湊和雜湊表
字首函式&&KMP
字首函式
定義:\(nxt[i]\)為\(s[0....i]\)這一子串中最長的相等的前字尾的長度
KMP
例題
1.無線傳輸(luogu4391/ybt1467)
求一個字串的最短週期
結論:
\[ans=n-nxt[n]
\]
證明:
兩條白線是最長的相等的字首和字尾
可得
\(1=2,2=3,3=4,4=5......\)
所以週期的長度就是1的長度
也就是\(n-nxt[n]\)
2.power strings(ybt1457/poj2406)
求一個字串最多是由多少個相同的子字串重複連線而成的
利用字首函式的性質解決
結論:
如果\(L\)能被\(L-nxt[L]\)整除就滿足題意,個數為除完的結果,否則為1
證明:
合法情況:
不合法情況: