Description
有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步
Format
Input
一行四个数据,棋盘的大小和马的坐标
Output
一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)
Sample 1
Input
3 3 1 1
Output
0 3 2
3 -1 1
2 1 4
Limitation
1s, 1024KiB for each test case.
Source
洛谷
#include <cstdio>
#include <queue>
using namespace std;
const int MAXN = 500;
int nBoard, mBoard;
int xStart, yStart;
int Board[MAXN][MAXN];
struct pos {
int x;
int y;
int s;
};
queue<pos> q;
int dx[8] = {
-2,-1,1,