当前位置: 首页 > 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;
}

相关文章:

  • <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日
  • 越秀地产约41.49亿元出售北京海淀功德寺项目公司65%股权,此前已质押给华润置地
  • 又有明星分析师晋升管理层:“白金分析师”武超则已任中信建投证券党委委员
  • 住建部:截至去年底常住人口城镇化率达到67%
  • 上海将完善隔代照料支持措施:建设老幼共享设施、提高科学育儿指导力度
  • 新疆巴音郭楞州和硕县发生4.6级地震,震源深度10千米
  • 永久基本农田竟沦为垃圾场,湖南湘潭回应:全面启动专项整治