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

蓝桥杯备考:BFS之马的遍历

这道题我们得知道象棋里的马能怎么走,应该是按日字走的

如图,就这么走,我们按基础的bfs遍历一下标记每个格子的最短的路径就行了,没到达的格子就设置为-1

#include <iostream>
#include <queue>
#include <cstring>
using namespace std;
const int N = 410;
int n, m, x, y;
int dict[N][N];
int dx[] = { -2,-1,1,2,2,1,-1,-2 };
int dy[] = { 1,2,2,1,-1,-2,-2,-1 };
typedef pair<int, int> PII;
void bfs() {
	memset(dict, -1, sizeof(dict));
	queue<PII> q;
	q.push({ x,y });
	dict[x][y] = 0;
	while (q.size())
	{
		auto t = q.front();
		q.pop();
		int x = t.first;
		int y = t.second;
		for (int k = 0; k < 8; k++)
		{
			int px = x + dx[k];
			int py = y + dy[k];
			if (px<1 || py<1 || px>n || py>m)continue;
			if (dict[px][py] != -1) continue;
			dict[px][py] = dict[x][y] + 1;
			q.push({ px,py });
		}
	}

}
int main()
{

	cin >> n >> m >> x >> y;
	bfs();
	for (int i = 1; i <= n; i++)
	{
		for (int j = 1; j <= m; j++)
		{
			cout << dict[i][j] << " ";
		}
		cout << endl;
	}





	return 0;
}

http://www.dtcms.com/a/96534.html

相关文章:

  • <AI>dify本地部署
  • 基于音频驱动的CATIA动态曲面生成技术解析
  • 【服务器操作指南 - GPU 使用与文件传输】轻松掌握 GPU 状态查看和服务器文件传输技巧
  • NVIDIA「官方外挂」发布!RTX 5060没发售就淘汰了
  • Github Webhook 以及主动式
  • 《Java编程思想》读书笔记:第八章 多态
  • 运维规则之总结(Summary of Operation and Maintenance Rules)
  • 感觉自己的理解能力差,如何提升呢?
  • 单端信号差分信号
  • DeepSeek V3-0324 发布:编程能力再攀高峰,挑战 Claude 3.7 Sonnet
  • CSS学习笔记6——网页布局
  • Agent AI综述
  • 第八章:LLM 推理的硬件加速与部署实践
  • 医疗智能体通信整合-大模型训练中沟通优化策略研究
  • 对称加密算法和非对称加密算法
  • 美业数字化变革:突破困境,引领未来
  • 哈希冲突 及 双哈希
  • 与 AI “对话”,多模态音视频交互
  • NX二次开发刻字功能——打印文本(识别电脑中的字体)
  • 【今日半导体行业分析】2025年3月28日
  • 【透明物体感知的破局之思——读《基于迭代语义与几何融合的透明物体单目深度估计与分割方法》】
  • 如何正确安装和校准在线式气体浓度检测仪?
  • 正则\u与\U符号
  • HTML简单介绍
  • 视图、MySQL、触发器、存储过程、流程控制语句
  • 详细介绍ASSERT()
  • B4X编程语言:字节转换器ByteConverter用法详解
  • 爱普生晶体单元FC2012AN在5G RedCap中的应用
  • Python新手练习——五子棋
  • 霸王茶姬小程序(2025年1月版)任务脚本