【发布时间】:2014-01-06 19:05:48
【问题描述】:
我们得到一个大小为N 的集合P,每个元素代表实线上的一个点。在P 中的每个p 点,都放置了一堆m(p) 石头。我们希望移动石头,使它们都间隔最小距离d,目标是最小化任何石头移动的最大距离。
示例:有N = 3 点和P = {1, 2, 3}。 m 是这样定义的
- 在 1 处,有两块石头 (
m(1) = 2), - 2 点有一块石头 (
m(2) = 1), - 和 3 有两块石头 (
m(3) = 2)。
可以这样描绘:
o o
o o o
----------------
...0 1 2 3 4...
如果最小间隙大小为 2,则此示例的最佳解决方案是
- 将一颗石头从 1 移到 0
- 将一颗石头从 1 移到 -2
- 将一颗石头从 3 移到 4
- 将一颗石头从 3 移到 6
给出一个解决方案
o o o o o
------------------------------
...-2 -1 0 1 2 3 4 5 6...
这意味着任何石头的最大行进距离是3。
不幸的是,我想不出一个计算这个数字的好方法,而且还没有在互联网上找到一个! 先感谢您。
【问题讨论】:
-
有什么限制吗?石头数还是点数?
标签: algorithm