在输入中,我们键入一个8x8大小的棋盘,其中“K”是骑士,“P”(最小1,最大8)是棋子,而“.”是空白所以我知道用一个棋子你只需要从骑士的初始位置到棋子的位置运行一个bfs,但是当我们有八个棋子的时候呢。当然我可以办八个兄弟会,但那真的效率很低。有什么比运行8个bfs来找到杀死棋盘上所有棋子所需的最少步骤更有效的方法呢?

最佳答案

它是Knight's tour的一个特例,可以用分治法在线性时间内求解。

关于algorithm - 考虑到骑士和某些棋子在棋盘上的位置,骑士杀死所有棋子的最小跳次数是多少?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35589356/

10-12 23:55