【发布时间】:2011-09-21 05:27:38
【问题描述】:
我在互联网上发现了以下问题,想知道我将如何解决它:
问题:没有重排的整数分区
输入: 非负数 {s1, 的排列 S . . , sn} 和一个整数 k。
输出: 将 S 划分为 k 个或更少的范围,以最小化最大值 所有k个或更少范围的总和, 无需重新排序任何 数字。*
请帮忙,似乎是个有趣的问题...我实际上花了很多时间,但没有看到任何解决方案..
【问题讨论】:
-
这不是 C++ 或 C 特定的——或者如果你想要一个解决方案,那么你必须只标记 C 或 C++。
-
“在所有范围内”是什么意思?
-
n会 >=k吗? @Tim:考虑到无论整数如何求和,所有值的最大总和都不会改变,他可能指的是每个分区中包含的值的总和。 -
minimize the maximum sum over all the ranges- 这是什么意思 -
@sehe,我认为这意味着对集合进行分区,以使最大和的分区之和最小。
标签: algorithm dynamic-programming