Advertisement

骑士巡游

阅读量:

题目描述
在一个n*m的棋盘(1<n,m<=400)中,某一位置放置了一匹马,需要计算该马到达棋盘上任意一点所需的最少步数

输入格式
输入包含四个数值,依次为棋盘的尺寸以及马的初始位置

输出格式
输出一个n*m的矩阵,其中每个元素表示马到达对应位置所需的最少步数(左对齐,宽度为5个字符,若无法到达则显示-1)

输入输出样例
输入

复制代码
    3 3 1 1
    
    
      
    
复制代码
    0    3    2    
    3    -1   1    
    2    1    4    
    
    
      
      
      
    

1.深度优先搜索

以下为相关代码实现:

复制代码
    #include<iostream>
    #include<cstdio>
    using namespace std;
    #define MAX 410
    int a[MAX][MAX];
    int flag[MAX][MAX];
    int m,n,x,y;
    int dx[8]={-1,-2,-2,-1,1,2,2,1}; 
    int dy[8]={-2,-1,1,2,2,1,-1,-2};
    void fin

全部评论 (0)

还没有任何评论哟~