【发布时间】:2011-11-14 08:42:11
【问题描述】:
在看到最近的algorithm 问题后,我想起了我曾经看到并解决过的一个有趣的问题,但现在忘记了解决方案。希望有人能指出我正确的方向。
您有一堆大小不一的K 块木头。你会得到C'cuts',你可以在木头的任何一点切割一块木头,将切割的两块都放回木头堆中。您的目标是确定M,即max(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.
【问题讨论】:
-
我是个怀疑论者:这听起来太像“请做我的功课”。为什么不尝试自己(再次?)当你遇到困难时发布一个特定的编程相关问题?
-
我向你保证我已经解决了这个问题,这是一个贪婪的解决方案。只是努力回忆细节,并希望这是我错过的一些(明显)明显的事情。
-
输入格式建议SPOJ,硬件规格也可以。
-
很可能最初是,我看到它的地方是 2009 年 @UCT 的算法理论问题。
-
您应该定义
max(pile)和min(pile)。最长和最短板的长度似乎很可能。