计算树中的最大节点遍历数

时间:2018-04-20 03:20:07

标签: algorithm data-structures graph tree tree-traversal

我有一个有N个节点的树。 k路径以u,v的形式给出。 现在,问题是找到从u到v(而不是找到节点本身)时遍历树节点的最大次数。

例如对于以下实例:

        1
      /   \
    2       3
  /  \
4     5

路径:1,5; 2,3,

ans将为2,因为节点1在两个路径中出现两次(对于节点2也是如此,但只需要计数)。

枚举所有路径是直接的方式,但是不可行,因为k <= N <= 10 ^ 5且在最坏的情况下天真的方法是O(N ^ 2)。

我相信应该有一些预处理树的方法,让我们可以在给定的每条路径的恒定时间内找到最大数量。

或许,需要一种完全不同的方法。

我正在寻找正确方向的一些指示。有什么建议? 任何帮助表示赞赏。

编辑:树可能不是二进制文件。唯一的规格是它是一棵树。 N个节点和N-1个边缘。

0 个答案:

没有答案