gpt4 book ai didi

带加权顶点的 DAG 算法

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:57:03 24 4
gpt4 key购买 nike

设 G = (V,E) 为 DAG(有向无环图)。每个顶点 v 都有一个分配给它的权重 w(v)。给定一个顶点 u,让 f(u) = max{w(v) where v can reach u}。所以,换句话说,f(u)是所有能到达u的顶点的权值中最大的权值。目标是编写一个线性时间算法,为 G 中的每个顶点 u 计算 f(u)。

例如,假设这是输入图:

graph

然后该算法应计算以下内容:

  • f(A) = 5
  • f(B) = 12
  • f(C) = 15
  • f(D) = 12
  • f(E) = 12

在 O(n(n+m)) 时间内完成这个很简单,但是如何在 O(n+m) 时间内完成呢?

最佳答案

进行拓扑排序,然后按此顺序遍历节点,并为每个节点分配其自身权重的最大值和直接前置节点的 f(即具有通往的边的节点当前节点)。

关于带加权顶点的 DAG 算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33273640/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com