给出最大长度的最长路径

时间:2011-02-07 18:00:57

标签: algorithm 2d

我需要帮助。

我会尝试尽可能完美地解释。

假设我有一个2d网格,这是我的“世界”。

网格看起来像这样:

grid

灰色方块是草。 绿色方块是道路。 橙色方块是沙漠。

中间的蓝色方块是我的车。我的车的射程限制为5格。我想找到并突出显示我可以达到的最大范围或更小的所有方格。

驾驶灰色广场需要1个范围。没有什么花哨。然而, 穿过绿色广场可以获得+0,5的射程。这意味着,如果您通过的前2个方格是绿色,则您的最大范围突然为6。 在橙色广场上行驶会给你一个-0,5的范围惩罚。这意味着如果您通过的前2个方格是橙色,则最大范围为4。

所以基本上,驾驶到一个正方形,花费你1个范围,但根据正方形,它可以给你额外的范围或更小的范围。

考虑奖金,探索所有路径。会使我的汽车最外部的范围看起来像这样: enter image description here

所以是的,我想要找到所有标有黑色边框的方块,以及其中的所有方块。这样我的最大范围内的所有方格都会突出显示。

很长的问题,但我如何实现这一目标?

我首先考虑了广度和深度,但是因为我可以在同一个广场上走几条路线,所以我不能在第一次将它标记为“已访问”,然后再回到它上面了吗?

对此的帮助会非常有用。

感谢您一直在这里阅读。

/ E

1 个答案:

答案 0 :(得分:9)

您可以更轻松地代表您的模型,无论是成本还是奖金。

  1. 你有5天的旅行时间。
  2. 开车穿过一平方的草地需要1天。
  3. 在沙漠的一个广场开车需要1.5天。
  4. 每个路段在路上行驶需要0.5天。
  5. 现在,您有一个简单的图表,您可以找到距离不超过5天的所有位置with Dijkstra's algorithm