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

题解:洛谷 P1443 马的遍历

【题目来源】

洛谷:P1443 马的遍历 - 洛谷

【题目描述】

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

【输入】

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

【输出】

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

【输入样例】

3 3 1 1

【输出样例】

0    3    2  
3    -1   1  
2    1    4  

【解题思路】

image

image

【算法标签】

《洛谷 P1443 马的遍历》 #搜索# #广度优先搜索,BFS# #队列# #Special judge#

【代码详解】

#include <bits/stdc++.h>
using namespace std;// 全局变量:
// n, m: 棋盘的行数和列数
// x, y: 马的初始位置
// a[405][405]: 存储每个位置的最少步数
int n, m, x, y, a[405][405];// 定义位置结构体
struct node
{int x, y;
};int main()
{// 输入棋盘大小和马的初始位置cin >> n >> m >> x >> y;// 定义马移动的8个方向int dx[8] = {-1, -2, -2, -1, 1, 2, 2, 1};int dy[8] = {-2, -1, 1, 2, 2, 1, -1, -2};// 初始化步数矩阵为-1(表示未访问)memset(a, -1, sizeof(a));// 创建队列用于BFSqueue<node> q;// 设置起始点步数为0,并加入队列node tp = {x, y};a[x][y] = 0;q.push(tp);// BFS遍历所有可达位置while (!q.empty()){tp = q.front();q.pop();// 尝试8个可能的移动方向for (int i = 0; i < 8; i++){int xx = tp.x + dx[i], yy = tp.y + dy[i];// 检查新位置是否合法且未被访问if (xx < 1 || xx > n || yy < 1 || yy > m || a[xx][yy] != -1){continue;}// 更新步数并加入队列a[xx][yy] = a[tp.x][tp.y] + 1;node t = {xx, yy};q.push(t);}}// 输出结果矩阵for (int i = 1; i <= n; i++){for (int j = 1; j <= m; j++){cout << a[i][j] << "    ";}cout << endl;}return 0;
}

【运行结果】

3 3 1 1
0    3    2
3    -1    1
2    1    4
http://www.jsqmd.com/news/390103/

相关文章:

  • 【GitHub项目推荐--ORB-SLAM3:开源视觉、视觉惯性及多地图SLAM库】
  • 污水处理系统中组态王6.55与三菱PLC联机仿真OPC通讯优化之旅
  • Photoshop - Photoshop 工具栏(63)注释工具
  • 题解:洛谷 P3853 [TJOI2007] 路标设置
  • 静态无功补偿器(SVC)仿真模型 采用静态无功补偿器(SVC)对一个500kv, 3000mv...
  • 春晚机器人与中国未来100年发展
  • Photoshop - Photoshop 工具栏(64)计数工具
  • 题解:洛谷 P3743 小鸟的设备
  • 题解:洛谷 P2678 [NOIP 2015 提高组] 跳石头
  • 构建跨行业三维空间智能治理中枢——矩阵视频融合 × 三角测量 × 数字孪生驱动全域风险前置控制
  • 论文阅读:arxiv 2025 Jailbreaking Attacks vs. Content Safety Filters: How Far Are We in the LLM Safety Ar
  • 复杂场景三维空间主动风险防控与智能调度系统——基于矩阵视频融合的空间级安全感知底座技术白皮书
  • 题解:洛谷 P1163 银行贷款
  • 题解:洛谷 P1182 数列分段 Section II
  • 正规的美团礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1873 [COCI 2011/2012 #5] EKO / 砍树
  • 题解:洛谷 P2440 木材加工
  • 【LeetCode 每日一题】3314. 构造最小位运算数组 I —— (解法二) - 详解
  • 题解:洛谷 P1102 A-B 数对
  • Smoke and Mirrors inspiration
  • 这个时间序列预测模型有点意思,直接上代码更直观。咱们先看看整个模型的架构长啥样
  • 题解:洛谷 P1678 烦恼的高考志愿
  • 行业内服务好的盒马鲜生礼品卡回收平台推荐 - 京顺回收
  • 题解:洛谷 P1024 [NOIP 2001 提高组] 一元三次方程求解
  • 题解:洛谷 P2249 【深基13.例1】查找
  • 信任就是最好的协作:openclaw的系统提示词分析
  • AI大模型高薪方向揭秘:大模型时代,小白也能弯道超车?高薪收藏帖+90天转型路线图免费领!
  • 大模型国家标准落地,大模型应用指南:小白也能掌握的金融科技新趋势,收藏学习必备!
  • 阿里通义千问团队揭秘Gated Attention,让你的大模型学习效率飙升,速收藏!
  • 从DeepSeek到Seedance2.0,大模型集体爆发!国产AI突然跃迁,小白也能轻松上车收藏!