Z函数学习笔记

对于一个 \(i\),我们要知道 \((i,len)\)\((1,len)\)\(lcp\) 我们可以使用Z函数,这个是被 \(SA\)\(log\) 完全取代的。但是算法比较有意思,学一下。我们维护当前能匹配到的最大的右端点。


****

然后我们要匹配后面的。首先,我们的最大值一定>=i-1
所以x可以看作是在****中间。

1 1+(j-i) len | i j i+len-1

所以我们看一下 \(nxt[i+len-(j+len-1-x)]\),然后和 \(j+len-x\) 取个 \(min\),然后就做完了。

posted @ 2025-07-09 10:21  wuhupai  阅读(11)  评论(0)    收藏  举报