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

蓝桥杯备考:BFS之Catch That Cow S

这道题一样,我们可以用BFS层序遍历的方式来做

我们的剪枝策略就是如果走到已经标记过的数,就跳过,因为这条路一定不是最短的

#include <iostream>
#include <cstring>
#include <queue>
const int N = 1e5 + 10;
using namespace std;
int t;
int dist[N];
int x, y;
void bfs()
{
	queue<int>q;
	q.push(x);
	dist[x] = 0;
	while (q.size())
	{
		int t = q.front(); q.pop();
		int a = t + 1;
		int b = t - 1;
		int c = t * 2;
		if (a <= N && dist[a] == -1)
		{
			dist[a] = dist[t] + 1;
			q.push(a);
		}
		if (b >= 0 && dist[b] == -1)
		{
			dist[b] = dist[t] + 1;
			q.push(b);
		}
		if (c <= N && dist[c] == -1)
		{
			dist[c] = dist[t] + 1;
			q.push(c);
		}
		if (a == y || b == y || c == y)
		{
			return;
		}
	}
}
int main()
{
	cin >> t;
	while (t--)
	{
		memset(dist, -1, sizeof(dist));
	    cin >> x >> y;
		bfs();
		cout << dist[y] << endl;
	}





	return 0;
}

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

相关文章:

  • 5G随身Wi-Fi下的pcdn
  • 动态开点线段树处理超大范围数据区间问题 - 洛谷P2781
  • Adobe Lightroom 2025安装下载和激活指南
  • Linux常见操作命令(2)
  • 音频进阶学习二十五——脉冲响应不变法实现低通滤波器
  • 【408】26考研-王道计算机408
  • 手工排查后门木马的常用姿势
  • C++之曲线拟合与离散点生成
  • ‌在 Fedora 系统下备份远程 Windows SQL Server 数据库的完整方案
  • Oracle数据库数据编程SQL<3.5 PL/SQL 存储过程(Procedure)>
  • JMeter进行分布式压测
  • 【力扣刷题实战】寻找数组的中心下标
  • Scala基础知识3
  • Kong网关研究
  • Android 中实现一个自定义的 AES 算法
  • 【SPP】深入解析蓝牙 L2CAP 协议在SPP中的互操作性要求 —— 构建可靠的蓝牙串口通信基础
  • CF每日5题(1400)
  • 关于微信小程序云开发,上传数据库时--数据异常问题
  • 从零构建大语言模型全栈开发指南:第四部分:工程实践与部署-4.1.2ONNX格式转换与TensorRT部署
  • 数据库部署在服务器表不存在解决方案
  • LVS负载均衡集群
  • 跨域问题解决
  • 【Linux】进程的详讲(中上)
  • 蓝桥杯数学知识
  • 20250331-智谱-沉思
  • 蓝桥杯备赛之枚举
  • 在Windows Server上安装和配置MinIO对象存储服务
  • PyTorch量化进阶教程:第三章 A 股数据处理与特征工程
  • 以太坊DApp开发脚手架:Scaffold-ETH 2 详细介绍与搭建教程
  • Spring Boot 2.x 与 Nacos 整合规范指南