另一个木刻困境

时间:2011-11-14 08:42:11

标签: algorithm

在看到最近的问题之后,我回想起我曾经看过并解决的一个有趣的问题,但现在已经忘记了解决方案。希望有人能指出我正确的方向。

你有一堆K块木头,大小各异。您将获得C'切割',您可以在木材的任何位置切割一块木头,将切割的碎片返回到木材堆中。您的目标是确定Mmax(pile) - min(pile)的最小值。

输入:

Line 1: Two space separated characters, K C
Lines 2..K+1: A single real number representing the length of a piece of wood (of the K).

输出:

M

约束:

K < 500 000
C < 1 000

限制

~10 sec runtime on an average PC with ~256 meg RAM limit'd.

1 个答案:

答案 0 :(得分:0)

对于{1,...,k}中的i,设L i 为片段i的初始长度并初始化C i ,等间距切割的数量i,到0.重复C次:令j = argmax i L i /(1 + C i )并增加C Ĵ