算法 - 3D网格中两个点之间的最短路径,具有不同的面,边和顶点权重

时间:2017-12-04 22:43:17

标签: algorithm 3d coordinates shortest-path breadth-first-search

我想找到一个3D空间中两个坐标(比如,(0,0,0)和(p,q,r))之间的最短路径,从(x,y,z)到(x +) 1,y,z),(z,y + 1,z)或(x,y,z + 1)花费一些成本A,从(x,y,z)到(x + 1,y + 1, z),(x + 1,y,z + 1)或(x,y + 1,z + 1)花费一些成本B并从(x,y,z)到(x + 1,y + 1, z + 1)花费一些成本C.

我想解决这个问题的一种方法是运行广度优先搜索。这将需要 O(XYZ)时间。 我想知道问题是否可以在 O(1)时间内解决。

我通过将每个动作描绘成一个形式(1,0,0),(1,1,0),(1,1,1)的堆叠而取得了一些进展。由于这些堆叠件的可交换性,我们可以移动它们并根据A,B和C的值将这些碎片合并或拆分。任何帮助都将受到高度赞赏。

编辑:A,B和C在整个网格中是不变的,但没有关于它们不等式的假设。

0 个答案:

没有答案