bfs宽搜

#include<iostream>
#include<cstring>
#include<vector>
#include<queue>
#include<algorithm>
#define fi first
#define se secondusing namespace std;const int N = 401;
typedef pair<int,int> PII;
queue <PII> q;
int f[N][N];
int n,m,x1,y1;
int d[][2] = {{2,1} , {1,2} , {-2 , -1} , {-1 , -2} , {-2 , 1} , {2 , -1} , {1,-2} , {-1 ,2}};void bfs()
{q.push({x1,y1});while(q.size()){auto t = q.front();q.pop();for(int i = 0 ; i < 8 ; i++){int x = t.fi + d[i][0];int y = t.se + d[i][1];if(x <= n && y <= m && x >= 1 && y >= 1 && f[x][y] == -1){f[x][y] = f[t.fi][t.se] + 1;q.push({x,y});}}}}int main()
{cin>>n>>m>>x1>>y1;memset(f,-1,sizeof f);f[x1][y1] = 0;bfs();for(int i = 1 ; i <= n ; i++){for(int j = 1 ; j <= m ; j++){if(f[i][j] < 0) printf("%d    ",f[i][j]);else printf("%d     ",f[i][j]);}cout<<endl;}return 0;
}

洛谷P1443 马的遍历相关推荐

  1. 洛谷 P1443 马的遍历(BFS)

    P1443 马的遍历 题目链接:https://www.luogu.org/problemnew/show/P1443 题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一 ...

  2. 【C++】洛谷P1443 马的遍历

    马的遍历 题目描述 有一个 n × m n \times m n×m 的棋盘,在某个点 ( x , y ) (x, y) (x,y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步. 输入 ...

  3. 【洛谷】马的遍历--广度优先搜索(BFS)

    题目描述 传送门:https://www.luogu.com.cn/problem/P1443 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意 ...

  4. P1443 马的遍历(洛谷)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 P1443 马的遍历 * Front knowledge 一.Question 二.MY CODE P1443 马的遍历 * ...

  5. 广度优先搜索(BFS)——马的遍历(洛谷 P1443)

    来看一道经典的搜索问题--马的遍历 大致题目,给定棋盘规模,以及马的初始位置,输出马到棋盘的最短距离,若不能到达则输出-1 很简单的一个搜索问题,用经典算法BFS就可以了,唯一需要注意判断的就是马有8 ...

  6. 马的遍历(洛谷-P1443)

    题目描述 有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步 输入输出格式 输入格式: 一行四个数据,棋盘的大小和马的坐标 输出 ...

  7. 洛谷3916 图的遍历

    题目描述 给出\(N\)个点,\(M\)条边的有向图,对于每个点\(v\),求\(A(v)\)表示从点\(v\)出发,能到达的编号最大的点. 输入输出格式 输入 第1行,2个整数\(N\),\(M\) ...

  8. Java P1443 马的遍历

    题目链接 广度优先搜索题目,一个点有八个方向,因为马走日 这个bfs用队列 import java.util.*; import java.math.*; public class Main {pub ...

  9. P1443 马的遍历

    原题目地址:https://www.luogu.org/problem/show?pid=1443 题目描述 题目描述有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你 ...

最新文章

  1. BIEE建模参考规范
  2. Linux学习之服务器搭建——基础网络配置
  3. WPF实现实现圆形菜单
  4. 为什么[]==0;JavaScript里什么情况下a==!a为true呢?
  5. zt:缓存一致性(Cache Coherency)入门 cach coherency
  6. eclipse远程调试liunx下的tomcat
  7. css 垂直居中_CSS垂直居中的另类实现
  8. c++基础题:判断某整数是正整数、负整数还是零
  9. java——char类型以及Character
  10. STM32学习笔记 | 引起电源和系统异常复位的原因
  11. vue全局更新以及孙组件调用祖组件(利用provide和inject)
  12. 这10个问题帮你搞清楚SaaS是什么
  13. 面向对象 、面向过程
  14. Ubuntu下UnixC的第二天
  15. windows平台下载并编译webrtc代码(代理)2021.8.11
  16. 网页前端设计-作业三(JavaScript)
  17. anaconda3最新安装教程
  18. 2020中国高校计算机大赛·华为云大数据挑战赛-数据分析(一)
  19. excel中html批量转化为pdf文件,如何将大量的Excel转换成PDF?
  20. excel学习--开始界面控制台讲解

热门文章

  1. mybatis resultType解析
  2. 【mpvue】如何升级mpvue版本
  3. python指数运算符_python运算符
  4. NVIDIA Xavier NX的Intel Realsense双目相机(T265+D435i)环境搭建
  5. 爬取智联招聘有用信息存入数据库
  6. 支付宝企业账户转账到个人账户
  7. BeTwin最新破解版 309 教程(转)
  8. 基于MediaPipe的手势识别 --安卓部分
  9. java手机号,身份证号,卡号,姓名 正则表达式脱敏
  10. 用Matlab画外接矩形——Regionprops函数详解:度量图像区域属性