当前位置: 首页 > news >正文

2733: 【搜索】【广度优先】 马遍历棋盘

题目描述

有一个n*m的棋盘(1<n,m<=400),在某个点上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步

输入

一行四个数据,棋盘的大小和马的坐标

输出

一个n*m的矩阵,代表马到达某个点最少要走几步(左对齐,宽5格,不能到达则输出-1)

样例输入

4 4 1 1

样例输出

0    3    2    5
3    4    1    2
2    1    4    3
5    2    3    2

Code:

#include<bits/stdc++.h>
using namespace std;
struct node{int x,y;
}temp,front;
int dx[4]={1,-1,2,-2};
int dy[4]={1,-1,2,-2};
int a[401][401];
bool vis[401][401];
int n,m;
void bfs(int x,int y,int step){a[x][y]=step;vis[x][y]=true;queue<node>Q;temp.x=x;temp.y=y;Q.push(temp);while(!Q.empty()){front=Q.front();Q.pop();for(int i=0;i<4;i++){for(int j=0;j<4;j++){if(abs(dx[i])!=abs(dy[j])){int nx=front.x+dx[i];int ny=front.y+dy[j];if(nx<1||nx>n||ny<1||ny>m){continue;}if(!vis[nx][ny]){temp.x=nx;temp.y=ny;Q.push(temp);vis[nx][ny]=true;a[nx][ny]=a[front.x][front.y]+1;}}}}}
}
int main(){memset(a,-1,sizeof(a));int x,y;cin>>n>>m>>x>>y;bfs(x,y,0);for(int i=1;i<=n;i++){for(int j=1;j<=m;j++){printf("%-5d",a[i][j]);}cout<<endl;}return 0;
}

相关文章:

  • 一分钟了解JAVA语言
  • RuoYi-Vue开源项目2-前端登录验证码生成过程分析
  • C++提高笔记(五)---STL容器(set/multiset、map/multimap)
  • flutter 局部view更新,dialog更新进度,dialog更新
  • 【热门话题】深入浅出:npm常用命令详解与实践
  • Redis监控工具
  • mac安装rust开发环境,使用brew安装和全局配置
  • 【GPT-SOVITS-03】SOVITS 模块-生成模型解析
  • 【NTN 卫星通信】 TN和多NTN配合的应用场景
  • shardingsphere-elastic-job-ui 管理界面安装
  • 数据分析-Pandas数据分类的转换控制
  • 速盾cdn:cdn节点缓存内容不一致怎么办?
  • 面试经典-MySQL篇
  • MQTT和Modbus的物联网网关协议区别分析
  • 上位机图像处理和嵌入式模块部署(qmacvisual畸变矫正)
  • Docker: 容器互访的三种方式
  • Java反射-动态类加载和重新加载
  • MobX
  • node 版本过低
  • Python利用正则抓取网页内容保存到本地
  • Python爬虫--- 1.3 BS4库的解析器
  • SpiderData 2019年2月13日 DApp数据排行榜
  • use Google search engine
  • 从PHP迁移至Golang - 基础篇
  • 关于Flux,Vuex,Redux的思考
  • 基于Dubbo+ZooKeeper的分布式服务的实现
  • 力扣(LeetCode)357
  • 前端工程化(Gulp、Webpack)-webpack
  • 白色的风信子
  • 测评:对于写作的人来说,Markdown是你最好的朋友 ...
  • #NOIP 2014# day.1 T2 联合权值
  • $con= MySQL有关填空题_2015年计算机二级考试《MySQL》提高练习题(10)
  • (1/2)敏捷实践指南 Agile Practice Guide ([美] Project Management institute 著)
  • (ros//EnvironmentVariables)ros环境变量
  • (紀錄)[ASP.NET MVC][jQuery]-2 純手工打造屬於自己的 jQuery GridView (含完整程式碼下載)...
  • (力扣)1314.矩阵区域和
  • (免费领源码)python#django#mysql校园校园宿舍管理系统84831-计算机毕业设计项目选题推荐
  • (三)uboot源码分析
  • (学习日记)2024.01.19
  • (原创)攻击方式学习之(4) - 拒绝服务(DOS/DDOS/DRDOS)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • .net FrameWork简介,数组,枚举
  • .net wcf memory gates checking failed
  • .net的socket示例
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • @FeignClient注解,fallback和fallbackFactory
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @软考考生,这份软考高分攻略你须知道
  • [Android 数据通信] android cmwap接入点
  • [asp.net core]project.json(2)
  • [BetterExplained]书写是为了更好的思考(转载)
  • [BZOJ1040][P2607][ZJOI2008]骑士[树形DP+基环树]
  • [CareerCup] 17.8 Contiguous Sequence with Largest Sum 连续子序列之和最大
  • [CSS]文字旁边的竖线以及布局知识
  • [ERROR] Plugin 'InnoDB' init function returned error