关于算法:计算给定路径成本下的最大利润

Calculate maximum profit under given path cost

给出了根图。在这里,节点是"家",其中包含一些有价值的物品。给出了入口节点,即图的根。

还给出了从一个节点移动到另一个节点的成本,即Egde权重。

问题-

您必须收集最大的贵重物品,总费用不得超过给定费用。

约束-
1.没有周期。
2.我们也可以使用邻接矩阵。(顶点总数最多为1000)。

示例

在目标节点中具有其权重和值的边。

1
2
3
4
0 1 10 1
0 2 10 15
1 3 50 10
1 4 30 30

给定费用=70。

解决方案-您将以最大方式收集节点1、2、4的项目。 [1 15 30 = 46]

我的努力

我认为,通过在每个节点上保持某种状态,此问题将由DP解决。但是我无法制定一些算法。请帮忙。

编辑1

  • 我认为可以通过使用原始图并在每个节点中添加一些状态来制作特殊图来解决此问题。
  • 第二种方法是动态编程。

  • 我认为您不会为这个问题找到简单的解决方案。

    考虑一个仅由连接到N个叶子的根节点组成的图。每片叶子的值为1,边的成本为c1,c2,... cN。

    如您所见,这个图问题将背包问题作为特例。