在我的一堂课上,我被问到这是一个脑筋急转弯,但我无法弄清楚(不是家庭作业问题,只是一个助教给我们思考的一个预告)。
给你一根棒子,上面有 n 个要切割的点,例如 [1,5,11],棒子的总长度,例如 20。你还被告知切割一根棒子的费用是等价的到杆的长度。我们希望找到在所有给定切割下切割棒材的最低成本以及会导致最优成本的切割顺序。
例如,要在位置 5 处切割长度为 20 的杆,您将花费 20 美元,您最终会得到 2 根原木,一根长度为 5,一根长度为 15。
或者在另一个示例中,如果您在位置 5 切割长度为 25 的杆,然后在位置 10 切割,则在位置 5 切割它需要花费 25 美元,留下长度为 5 的杆和长度为 20 的杆,然后花费您在位置 10 再削减 20 美元,您在这两个位置的总成本为 45 美元。但是,如果您在位置 10 处切割杆,然后在位置 5 处切割,则将花费您 25 美元 + 10 美元 = 35 美元。
最后,我们想要return the minimum cost of cutting the rod at all the given cuts and the sequence of those cuts that would lead to the optimal cost.
我试图为这个问题提出一个递归解决方案,但一直空手而归。想法?任何帮助表示赞赏。谢谢!