【发布时间】:2014-01-13 00:02:19
【问题描述】:
考虑一个网格(X x Y)。网格中的每个点都有一个值 Z。现在,在这个网格中有 i 个指定的检查点。考虑网格的等级为 D。这个值 D 意味着您只需穿过具有最大值 D 的路径即可从任何一个检查点到达另一个检查点。路径的长度由两个检查点之间的最大高程差决定该路径中的两个连续节点。例如考虑一个海拔网格:
1 1 1 1 1
2 1 3 1 2
1 2 3 1 2
如果我走这条路:(X 表示继续,O 表示没有通过):
X X X O O
O O X O O
O O X X X
这条路径的值将是 2,因为最高的高差在您从 1 到 3 的部分。
因此问题是:找到允许从任何检查点到另一个检查点的 D 的最小值,这意味着 D 将是从一个检查点到另一个检查点的最大路径长度。
例如,如果 D 为 2,这意味着我可以通过让所有路径的最大值为 2 来从检查点到达另一个检查点。
什么是有效的算法?
【问题讨论】:
-
您的问题没有格式化,因此很难看到您提供的示例路径。一种解决方案是从最高处向下走,只走尽可能小的路线,看看是否能到达起始位置。