Graph 打印给定图形中两个给定顶点之间的唯一路径

Graph 打印给定图形中两个给定顶点之间的唯一路径,graph,depth-first-search,Graph,Depth First Search,由n-1边连接的树状n顶点。。然后,我必须根据查询查找(a到b边缘)的总成本。每一条边都给出了具体的成本。我正在尝试使用dfs来完成它。但我越来越害怕了。有更好的方法。 请建议一些更好的方法。特别感谢他们 任意根树,并预先计算根到每个节点的距离。然后对于每个查询(a,b)计算a和b(称之为c),然后两者之间的距离将是(用dist[i]表示与根的距离)dist[a]+dist[b]-2*dist[c]。距离预计算在O(N)中运行,LCA预计算在O(NlogN)中运行,每个查询都可以在O(logN)

n-1
边连接的树状
n
顶点。。然后,我必须根据查询查找(a到b边缘)的总成本。每一条边都给出了具体的成本。我正在尝试使用dfs来完成它。但我越来越害怕了。有更好的方法。

请建议一些更好的方法。特别感谢他们

任意根树,并预先计算根到每个节点的距离。然后对于每个查询
(a,b)
计算
a
b
(称之为
c
),然后两者之间的距离将是(用
dist[i]
表示与根的距离)
dist[a]+dist[b]-2*dist[c]
。距离预计算在
O(N)
中运行,LCA预计算在
O(NlogN)
中运行,每个查询都可以在
O(logN)
中运行(取决于实现)


在线上有很多关于这个问题的资源,所以如果我链接的Hackerrank页面不够,请随意在谷歌上搜索更多内容。

DFS是Microsoft提供的分布式文件系统。注意:有关深度优先搜索的问题,请使用深度优先搜索标签。不要与[深度优先搜索]混淆,感谢您的指导。我会检查其他网站,如果有进一步的问题。