题意 : 将一个木板锯成N块(即锯N-1次)。规则是每次将一个长度为L的木板锯成2块(不一定相等), 代价是L元。求N-1次代价的最小值。
开始以为是动态规划了,这题确实可以很容易找到子问题,而且子问题间会出现不少重叠,锯一个木板的代价 = Min{ 锯它的两个子木板的代价之和 } + 所锯木板长度, 但在哪里锯这个木板就很难决定了,子问题数量太多,叉掉。
也想过贪心,但没想到是哈弗曼编码问题。
知道这题用贪心,剩下的就比较简单了,代码就不贴了。
题意 : 将一个木板锯成N块(即锯N-1次)。规则是每次将一个长度为L的木板锯成2块(不一定相等), 代价是L元。求N-1次代价的最小值。
开始以为是动态规划了,这题确实可以很容易找到子问题,而且子问题间会出现不少重叠,锯一个木板的代价 = Min{ 锯它的两个子木板的代价之和 } + 所锯木板长度, 但在哪里锯这个木板就很难决定了,子问题数量太多,叉掉。
也想过贪心,但没想到是哈弗曼编码问题。
知道这题用贪心,剩下的就比较简单了,代码就不贴了。