我们获得了项目完成项目和现金奖励清单。每个项目都有一个完成项目所需的源列表。如果我们决定购买一个来源,我们需要支付一次上市价格,我们可以将它用于所有项目。在多个项目中可能需要每个源。如果我们购买项目所需的所有必要资源,项目就完成了,我们会收到规定的现金奖励。我们需要找到一种算法(而不是代码)来最大化利润。
我只能想到一个启发式方法。
首先,我通过所有线路检查是否有任何线路,如果我购买完成项目所需的所有资源,我没有损失金钱(我要么赚钱或者零余额)。如果我找到这样的线路,我会购买所有必需的资源
但是这样的行可能存在也可能不存在,我最终尝试了所有可能的子集。我仍然认为它可以在多项式时间内解决。我想不出如何应用一些网络流量算法。有任何想法吗?