给定具有n个节点(从1到n编号)和n-1个边的树。每条边都有两个整数,一个重量和一个增益,与之相关联。你也得到一个数字K.你可以从任何节点开始,你必须进行交易。在每次交易中,您都会损失等于边缘权重的金额,并获得等于边缘增益值的利润。您必须最大化利润,以便总损失的金额< = K查找树中的路径/子路径,使得权重之和小于给定的整数
以下是原始问题的链接。相应的比赛现在结束了。
https://www.hackerrank.com/contests/gs-quantify-2017/challenges/profit-maximization
我所做的:
我建了一个递归方法通过考虑每个节点的路径的起始节点,然后通过考虑由无休止的后续节点的递归计算最大利润限制。
但显然这具有非常高的时间复杂性。
有没有更优雅更省时的方法?