假设你有一个n x n游戏板,你有一个可以像棋盘上的骑士一样移动的角色,除了他不能向上或向左移动。他移动的每个区块都有一个可以积累到他的分数的值。玩家正试图最大化积分并达到T
我提出了一个解决方案,但我想知道它可能失败的地方和运行时间。
我的想法是为每个可能的目的地创建一个有向加权图(指向权重)并在图上运行Dijkstra算法,但不是最短路径,我们 试着找到最长的路径。
我猜测运行时间是O(有些东西+ | E | + | V | log || V |)
我不确定是什么东西。
答案 0 :(得分:1)
Dijkstra不适合寻找最大路径。在ordrer中找到最大路径,你应该将每个边缘权重乘以-1
,众所周知dijkstra在负权重边缘的图上不能正确运行。相反,您需要使用Bellman-Ford algorithm。如维基百科文章中所述,复杂性将为O(| V | · | E |)
。