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

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

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

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

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

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

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

拍照搜题秒出答案,一键查看所有搜题记录

拍照搜题秒出答案,一键查看所有搜题记录

由单位正方形组成的M*N的矩形棋盘(其中M,N为不超过10的正整数),
在棋盘的左下角单位正方形里放有一枚棋子,甲乙两人轮流行棋.规则
是:或者向上走任意多格,或者向右走任意多格,但是不能走出棋盘或者
不走.若规定不能再走者为负(即最先将棋子移至右上角者获胜).那么
能使先行棋的甲有必胜策略的正整数对(M,N)共有多少个?

拍照搜题秒出答案,一键查看所有搜题记录

首先嫆易知道M=N=1时 甲必败 下面我们归纳证明当M=N时 甲必败
首先M=N=1的情形是显然的
假设M=N《K时,甲必败 则当M=N=K+1时,假设甲第一步往任意一个方向走X步
则乙便往另外一个方向走X步 若X=K+1,易知此时已经走到右上角,所以甲已经败了.否则XN (M

我要回帖

更多关于 地上有一个m行和n列 的文章

 

随机推荐