洛谷 P1443 马的遍历
题目描述
有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步
输入格式
一行四个数据,棋盘的大小和马的坐标
输出格式
一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)
输入输出样例
输入
3 3 1 1
输出
0 3 2
3 -1 1
2 1 4
AC代码
#include <iostream>
#include <string.h>
#include <stdio.h>
using namespace std;
int a[410][410];//存放棋盘
int book[410][410];//标记是否走过
//存放马走的方向,一共八个,按顺时针方向
int next[8][2]={
{
-2,1},{
-1,2},{
1,2},{
2,1},{