2

我们将获得项目清单和项目完成的现金奖励。每个项目都有完成项目所需的资源列表。如果我们决定购买源,我们需要支付一次列出的价格,我们可以将其用于所有项目。在多个项目中可能需要每个源。如果我们购买了项目所需的所有必要资源,则项目完成,我们会收到规定的现金奖励。我们需要找到一种算法(而不是代码)来最大化利润。

我只能想到一种启发式方法。

首先,我检查所有线路并检查是否有线路,如果我购买了完成项目所需的所有资源,我不会损失金钱(我要么赚了一些钱,要么余额为零)。如果我找到这样的行,我会购买所有必需的资源。

但是这样的行可能存在也可能不存在,我最终尝试了所有可能的子集。我仍然认为它可以在多项式时间内解决。我想不出任何方法如何应用一些网络流算法。有任何想法吗?

4

0 回答 0