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

洛谷:P1443 马的遍历

题目描述

有一个 n×m 的棋盘,在某个点 (x,y) 上有一个马,要求你计算出马到达棋盘上任意一个点最少要走几步。

输入格式

输入只有一行四个整数,分别为 n,m,x,y。

输出格式

一个 n×m 的矩阵,代表马到达某个点最少要走几步(不能到达则输出 −1)。

输入输出样例

输入 #1复制

3 3 1 1

输出 #1复制

0 3 2 3 -1 1 2 1 4

说明/提示

数据规模与约定

对于全部的测试点,保证 1≤x≤n≤400,1≤y≤m≤400。

2022 年 8 月之后,本题去除了对输出保留场宽的要求。为了与之兼容,本题的输出以空格或者合理的场宽分割每个整数都将判作正确。

题解:

#include "iostream"
using namespace std;
#include "vector"
#include "queue"
int dir[8][2]={2,1,1,2,-1,2,-2,1,-2,-1,-1,-2,1,-2,2,-1};
void bfs(vector<vector<int>>&grap,vector<vector<bool>>&vis,int x,int y){
queue<pair<int,int>>que;
que.push({x,y});
vis[x][y]=true;
while(!que.empty()){
pair<int,int>cur=que.front(); que.pop();
int curx=cur.first;
int cury=cur.second;
for(int i=0;i<8;i++){
int nextx=curx+dir[i][0];
int nexty=cury+dir[i][1];
if(nextx<1||nextx>=grap.size()||nexty<1||nexty>=grap[0].size()) continue;
if(vis[nextx][nexty]==false){
grap[nextx][nexty]=grap[curx][cury]+1;
que.push({nextx,nexty});
vis[nextx][nexty]=true;
}
}
}
}

int main(){
int n,m,x,y;
cin>>n>>m;
vector<vector<int>>grap(n+1,vector<int>(m+1,-1));//初始为-1,表示未被访问过
vector<vector<bool>>vis(n+1,vector<bool>(m+1,false));
cin>>x>>y;
grap[x][y]=0;
bfs(grap,vis,x,y);
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<grap[i][j]<<" ";
}
cout<<endl;
}
system("pause");
return 0;
}

http://www.jsqmd.com/news/545396/

相关文章:

  • Spring Boot 与 Kubernetes 集成最佳实践
  • 告别低效!用NERDCommenter插件让Vim多行注释变得如此简单
  • SDMatte镜像结构详解:/opt/sdmatte-web目录布局与模型路径规范说明
  • Windows 10/11 安装配置Win32-OpenSSH完整指南(含防火墙设置)
  • 设计模式入门:最简单的模板方法模式
  • T113 7寸 RGB 电容触摸屏设备树配置与调试实战
  • 从“雪山救狐狸”到“酱板鸭复仇”: AI时代的全民创作狂欢与营销革命
  • 别再为YOLO训练数据少发愁了!手把手教你用Python+OpenCV 4.1.2.30实现6种数据增强(附完整代码)
  • PVE网络优化实战:如何用Host-Only网络提升内网传输速度(附完整配置流程)
  • OLED滚动显示长字符技巧:STM32驱动0.96寸屏实现诗词滑动效果
  • 网页上的猫猫,L2Dwidget看板娘
  • OpenRocket:开源火箭仿真软件的技术架构与工程应用价值
  • RWKV7-1.5B-g1a提示词工程指南:4类高价值测试prompt设计与优化
  • Pixel Fashion Atelier保姆级教程:Mac M系列芯片用户通过ROCm兼容方案部署
  • SAP银行账户管理入门:从零配置House Bank到实战业务场景
  • 基于vue+springboot框架扶贫助农产品商城系统设计与实现
  • Hunyuan-MT-7B媒体应用:新闻稿多语同步发布系统技术实现路径
  • RCWA光学仿真:从原理到实践的系统化学习指南
  • OpenClaw性能优化:提升GLM-4.7-Flash任务执行速度
  • 2026年4月广东GEO优化推广运营服务商推荐:AI获客与搜索GEO推广,全链路智能增长解决方案与实战效果保障之选 - 品牌企业推荐师(官方)
  • Windows Terminal效率革命:4个场景化应用技巧让开发效率提升50%
  • VScode+AutoDL远程开发避坑指南:从SSH配置到环境调试全流程
  • 终极NES模拟器FCEUX安装配置指南:3分钟快速上手经典游戏
  • 红果短剧模式系统开发:高转化付费逻辑 + 多广告联盟接入方案
  • 手把手教你使用剪映电脑版快速上手制作MP4视频
  • 2026旅行社定制旅游服务口碑推荐,哪家更值得选择? - 品牌排行榜
  • 别再用‘git reset’硬搞了!用SourceTree的‘强行合并’安全回滚代码(附实战避坑)
  • pta一连串字符例如身份证号输出有CTX COT乱码
  • 破解Calibre中文路径三大难题:让电子书管理回归本源
  • 基于PFC5.0代码的可破碎cluster与ball颗粒模拟碎石、矿渣混凝土材料单轴压缩实验研...