DAG中多个节点的最不祖先

问题描述 投票:3回答:2

如何在有向无环图中找到多个节点的最不祖先?

我已经找到了很多关于该主题的论文,但他们似乎都在DAG中为two节点找到了LCA。

是否有针对多个节点的好的算法?

algorithm graph-algorithm directed-acyclic-graphs least-common-ancestor
2个回答
2
投票

也许您也可以采用适用于DAG的方式修改用于树的算法。

如您所知,对于每个查询,存在一种算法,该算法可通过O(nlgn)预处理和O(1)预处理在树中找到LCA,因此可找到k] >节点需要O(k)。有关此算法的更多详细信息,请参见here

0
投票

正如@ DennisMeng,@ vzn和@ user824425在评论中已经指出的,在某些情况下(!),可以通过(二进制)LCA运算符的逐对递归应用]计算两个以上节点的LCA。例如:

© www.soinside.com 2019 - 2024. All rights reserved.