在m行n列的棋盘地上有一个m行和n列棋子,它走“日”,且只能向右走。现在它位于最左方处,求它走到最右方的路径

下过象棋的人都知道马只能走'ㄖ'字形(包括旋转90°的日),现在想象一下,给你一个n行m列网格棋盘,棋盘的左下角有一匹马请你计算至少需要几步可以将它移动到棋盤的右上角,若无法走到则输出-1.如n=1,m=2,则至少需要1步;若n=1m=3,则输出-1。

马走日从某一点开始走,一共有8种走法:

题目要求从左下走到右上那么能用上的就是坐标轴第一和第四象限的4种走法,需要根据实际位置判断马下一步怎么走而且走的总步数最少,需要使用广度优先遍历从某一步到下一步的所有走的路径还需要记录步长,考虑最短路径 算法能力比较差,代码的具体编写没写出来

这是关于这道题嘚解题报告:

里面的思路有给广度优先加剪枝的,还有用向量的但是有4层for循环复杂度太高。

希望可以帮忙分析下这道题谢谢大家。

参考资料

 

随机推荐