我到处搜索,但没有找到关于袋鼠方法的清晰解释。只有我发现的是一些ppts,但对我来说没用,因为我之前没有读过袋鼠方法。这些ppts用于修改袋鼠方法。
如果有人能提供关于袋鼠方法或视频教程链接的阅读材料,请给我一个很好的帮助。
提前thanx
答案 0 :(得分:4)
设T = t1t2 ... tn,P = p1p2 ... pm
k =允许<错误
预处理T $ 1P $ 2的后缀树[时间:O(nlog | Sigma | by Weiner算法构造后缀树)Sigma是语言。
在我们刚刚创建的树上预处理LCA。 [时间:O(n)]
在所有节点上运行并在每个节点上写入它从根开始的高度。 [时间:我们有O(n)个节点]
迭代所有后缀(=叶子)并为每个后缀Si初始化一个错误计数器并查询h1 =高度(LCA(Si,P)),如果h> = m我们将i添加到解决方案中,否则: err ++并且如果err&lt; = k继续检查h2 = height(LCA(Si [h1 + 1,n],P [h1 + 1,m]))。
[时间:在所有后缀上运行=&gt; O(n),对于每个后缀运行高达k + 1次=&gt; O(KN)]
希望这有助于......
布什