有一些 n 个点位于 2d 网格中。要求是将一个项目从所有这些点(n-1 个点)移动到一个点(在 n 个点的集合中),以便将所有项目移动到该点的成本将是最小的。如果有多个这样的点,那么我们可以随机选择任何点。搬家费用计算如下。
成本计算公式
如果有一个点,则将对象从所有 8 个相邻点
(x,y)
移动所需的成本为 1 个单位(x,y)
{(x+1,y),(x+1,y+1),(x,y+1),(x-1,y+1),(x,y-1),(x-1,y-1),(x,y-1),(x+1,y-1)}
有人可以为此建议任何 O(N) 算法吗?我已经尝试过 O(N2) 算法(比如取每一对并计算成本)。