此题就是广度优先搜索题再稍加修改即可,再队列不为空时,一直通过第一个元素扩展出其他点
根据广搜的性质,第一个被存入队列的点的步数一定是最小的步数。
那么就可以使用STL自带的队列queue
首先介绍一下queue队列
头文件#include
push(X)将x放入对头
pop()取出对头元素
front()访问对头元素
empty()判断队列是否为空
代码如下
#include<iostream>
#include<queue>
#include<iomanip>
using namespace std;
int square[405][405];//棋盘
bool aim[405][405];//标记数组
int dx[8]={
-2,-2,-1,1,2,2,1,-1};
int dy[8]={
1