由n
边缘连接的树状n-1
顶点。。然后,我必须根据查询找到从(a到b边缘)的总成本。每个边缘都有特定的成本。我正在尝试使用DFS。但是我变得不安了。有更好的方法。请提出一些更好的方法。特别感谢他们!
任意地树根,并预先计算从根到每个节点的距离。然后,对于每个查询(a,b)
,计算lowest common ancestor和a
的b
(称为c
),然后两者之间的距离将为(dist[i]
代表距根的距离)[ C0]。距离预计算在dist[a]+dist[b]-2*dist[c]
中运行,LCA预计算在O(N)
中运行,每个单独的查询都可以在O(NlogN)
中运行(取决于实现方式)。
在线上有很多有关此问题的资源,因此,如果我链接的Hackerrank页面不足,请随时谷歌搜索更多。