我到处搜索,但没有找到关于袋鼠方法的好的清楚的解释。只是我发现了一些ppts,但对我没用,因为我之前没有读过袋鼠方法。这些ppts是对袋鼠方法的修订。

如果有人可以为我提供有关袋鼠方法的阅读材料或视频教程链接,请提供帮助。

预先感谢

最佳答案

设T = t1t2 ... tn,P = p1p2 ... pm

k =#个允许的错误

预处理后缀树为T $ 1P $ 2 [时间:O(nlog | Sigma |通过Weiner算法构建后缀树)Sigma是语言。

在刚创建的树上预处理LCA。 [时间:O(n)]

在所有节点上运行,并在每个节点上写它到根的高度。 [时间:我们有O(n)个节点]

遍历所有后缀(= leaves),并为每个后缀Si初始化一个err计数器,并查询h1 = height(LCA(Si,P)),如果h> = m,我们将i添加到解决方案中,否则:err ++,如果err
[时间:运行所有后缀=> O(n),每个后缀最多运行k + 1次=> O(kn)]

希望这会有所帮助...

衬套

10-08 18:58