在二维网格中有n个点。要求将所有这些点中的一个物品(n-1个点)移动到单个点(在n个点集合中),以便将所有物品移动到该点的成本最小。如果有多个这样的点,则可以随机选择任何一个点。移动成本计算如下。
成本计算公式:
如果点在(x,y)处,那么将对象从(x,y)移动到所有8个相邻点{(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)}所需的成本为1个单位。
有没有人能提供任何O(N)算法?我已经尝试了O(N2)算法(例如取每对并计算成本)。
成本计算公式:
如果点在(x,y)处,那么将对象从(x,y)移动到所有8个相邻点{(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)}所需的成本为1个单位。
有没有人能提供任何O(N)算法?我已经尝试了O(N2)算法(例如取每对并计算成本)。