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

一维坐标的移动(bfs)

在一个长度为n的坐标轴上,小S想从A点移动B点。

他的移动规则如下:

向前一步,坐标增加1。

向后一步,坐标减少1。

跳跃一步,使得坐标乘2。

小S不能移动到坐标小于0或大于n的位置。

小S想知道从A点移动到B点的最少步数是多少,你能帮他计算出来么?

输入格式

第一行输入三个整数n,A,B,分别代表坐标轴长度,起始点坐标,终点坐标。(0<=A,B<=n<=50000)

输出格式

输出一个整数占一行,代表小S要走的最少步数。

样例输入

10 2 7

样例输出

3

dfs深度优先(时间复杂度会比较高,这里仅供理解题目)

#include<iostream>
using namespace std;
const int N=50005;
bool st[N];
int n,A,B;
int ans;
void dfs(int x,int step){if(x==B){//结束条件 ans=step;return;}int y;//向前走,坐标+1y=x+1;if(!st[y]&&y>=1&&y<=n){st[y]=true;dfs(y,step+1);st[y]=false;}//向后走,坐标-1y=x-1;if(!st[y]&&y>=1&&y<=n){st[y]=true;dfs(y,step+1);st[y]=false;}//跳跃,坐标*2 y=x*2;if(!st[y]&&y>=1&&y<=n){st[y]=true;dfs(y,step+1);st[y]=false;}
}
int main(){cin>>n>>A>>B;dfs(A,0);cout<<ans<<endl;return 0;
}

bfs广度优先

 

#include<iostream>
#include<queue>
using namespace std;
const int N=50005;
bool st[N];
typedef struct point{int x;int step;
}point;
queue<point> q;
int n,A,B;void bfs(){while(q.size()){point p=q.front();if(p.x==B){break;}point next;int a;//向前走,坐标+1 a=p.x+1;if(!st[a]&&a>=1&&a<=n){next.x=a;next.step=p.step+1;q.push(next);//入队st[a]=true; }//向后走,坐标-1 a=p.x-1;if(!st[a]&&a>=1&&a<=n){next.x=a;next.step=p.step+1;q.push(next);//入队st[a]=true; }//跳跃,坐标*2 a=p.x*2;if(!st[a]&&a>=1&&a<=n){next.x=a;next.step=p.step+1;q.push(next);//入队st[a]=true; }q.pop(); }
}
int main(){cin>>n>>A>>B;point start;start.x=A;start.step=0;q.push(start);bfs();cout<<q.front().step<<endl;return 0;
} 

 

相关文章:

一维坐标的移动(bfs)

在一个长度为n的坐标轴上&#xff0c;小S想从A点移动B点。 他的移动规则如下&#xff1a; 向前一步&#xff0c;坐标增加1。 向后一步&#xff0c;坐标减少1。 跳跃一步&#xff0c;使得坐标乘2。 小S不能移动到坐标小于0或大于n的位置。 小S想知道从A点移动到B点的最少步数是多…...

面试题 整理

第1题&#xff1a;常见数据类型大小 这边以64位计算机系统&#xff0c;环境而言。 类型 存储大小 值范围 char 1 字节 -128 到 127 或 0 到 255 unsigned char 1 字节 0 到 255 signed char 1 字节 -128 到 127 int 4 字节 -32,768 到 32,767 或 -2,147,483,648…...

苍穹外卖-day08:导入地址簿功能代码(单表crud)、用户下单(业务逻辑)、订单支付(业务逻辑,cpolar软件)

苍穹外卖-day08 课程内容 导入地址簿功能代码用户下单订单支付 功能实现&#xff1a;用户下单、订单支付 用户下单效果图&#xff1a; 订单支付效果图&#xff1a; 1. 导入地址簿功能代码&#xff08;单表crud&#xff09; 1.1 需求分析和设计 1.1.1 产品原型&#xff08…...

Java面试相关问题

一.MySql篇 1优化相关问题 1.1.MySql中如何定位慢查询&#xff1f; 慢查询的概念&#xff1a;在MySQL中&#xff0c;慢查询是指执行时间超过一定阈值的SQL语句。这个阈值是由long_query_time参数设定的&#xff0c;它的默认值是10秒1。也就是说&#xff0c;如果一条SQL语句的执…...

Linux Shell中的循环控制语句

Linux Shell中的循环控制语句 在编写Shell脚本时&#xff0c;循环是一种常用的控制结构&#xff0c;用于重复执行一系列命令。在Shell中&#xff0c;主要有三种循环控制语句&#xff1a;for循环&#xff0c;while循环&#xff0c;和until循环。 1. For循环 for循环是最常见的…...

proto3语言指南

Language Guide (proto3) 本指南介绍了如何使用 protocol buffer 语言来构建protocol buffer数据,包括.proto文件语法以及如何从.proto 文件生成数据访问类。它涵盖了proto3 版本的协议缓冲语言:有关proto2语法的信息,请参阅proto2语言指南。 文章目录 Language Guide (pro…...

解决后端传给前端的日期问题

解决方式&#xff1a; 1). 方式一 在属性上加上注解&#xff0c;对日期进行格式化 但这种方式&#xff0c;需要在每个时间属性上都要加上该注解&#xff0c;使用较麻烦&#xff0c;不能全局处理。 2). 方式二&#xff08;推荐 ) 在WebMvcConfiguration中扩展SpringMVC的消息转…...

MySQL中的索引失效情况介绍

MySQL中的索引是提高查询性能的重要工具。然而&#xff0c;在某些情况下&#xff0c;索引可能无法发挥作用&#xff0c;甚至导致查询性能下降。在本教程中&#xff0c;我们将探讨MySQL中常见的索引失效情况&#xff0c;以及它们的特点和简单的例子。 1. **索引失效的情况** …...

SpringBoot异常:类文件具有错误的版本 61.0, 应为 52.0的解决办法

问题&#xff1a; java: 无法访问org.mybatis.spring.annotation.MapperScan 错误的类文件: /D:/Program Files/apache-maven-3.6.0/repository/org/mybatis/mybatis-spring/3.0.3/mybatis-spring-3.0.3.jar!/org/mybatis/spring/annotation/MapperScan.class 类文件具有错误的…...

Cloudways搭建WordPress外贸独立站完整教程

现在做个网站不比从前了&#xff0c;搭建网站非常的简单&#xff0c;主要是由于开源的CMS建站系统的崛起&#xff0c;就算不懂编程写代码的人也能搭建一个自己的网站&#xff0c;这些CMS系统提供了丰富的主题模板和插件&#xff0c;使用户可以通过简单的拖放和配置操作来建立自…...

关于 闰年 的小知识,为什么这样判断闰年

闰年的规定&#xff1a; 知道了由来&#xff0c;我们就可以写程序来判断&#xff1a; #include <stdio.h> int main() {int year, leap;scanf("%d",&year);if((year%4 0 && year%100 ! 0) || year%400 0)leap 1;else leap 0;if(leap) printf(…...

Elasticsearch:调整近似 kNN 搜索

在我之前的文章 “Elasticsearch&#xff1a;调整搜索速度”&#xff0c;我详细地描述了如何调整正常的 BM25 的搜索速度。在今天的文章里&#xff0c;我们来进一步探讨如何提高近似 kNN 的搜索速度。希望对广大的向量搜索开发者有一些启示。 Elasticsearch 支持近似 k 最近邻…...

UE5数字孪生系列笔记(二)

智慧城市数字孪生系统 制作流云动画效果 首先添加一个图像在需要添加流云效果的位置 添加动画效果让其旋转 这个动画效果是程序开始就要进行的&#xff0c;所以要在EventConstruct中就可以启动这个动画效果 添加一个一样的图像在这里&#xff0c;效果是从此处进行放大消散 添…...

基于vue实现bilibili网页

学校要求的实验设计,基于vue实现bilibili网页版,可实现以下功能 (1)基本的悬浮动画和页面渲染 (2)可实现登录和未登录的页面变化 (3)在登录页面的,实现密码判断,或者短信验证方式的倒数功能 (4)实现轮播图 (5)实现预览视频(GIF) (6)页面下拉到一定高度出现top栏以及右下角的返回…...

计算机二级(Python)真题讲解每日一题:《十字叉》

描述‪‬‪‬‪‬‪‬‪‬‮‬‪‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‮‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‮‬ ‪‬‪‬‪‬‪‬‪‬‮‬‪…...

基于正点原子潘多拉STM32L496开发板的简易示波器

一、前言 由于需要对ADC采样性能的评估&#xff0c;重点在于对原波形的拟合性能。 考虑到数据的直观性&#xff0c;本来计划采集后使用串口导出&#xff0c;并用图形做数据拟合&#xff0c;但是这样做的效率低下&#xff0c;不符合实时观察的需要&#xff0c;于是将开发板的屏幕…...

【Docker】apisix 容器化部署

APISIX环境标准软件基于Bitnami apisix 构建。当前版本为3.8.0 你可以通过轻云UC部署工具直接安装部署&#xff0c;也可以手动按如下文档操作&#xff0c;该项目已经全面开源&#xff0c;可以从如下环境获取 配置文件地址: https://gitee.com/qingplus/qingcloud-platform qi…...

基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的障碍物检测系统(深度学习代码+UI界面+训练数据集)

摘要&#xff1a;开发障碍物检测系统对于道路安全性具有关键作用。本篇博客详细介绍了如何运用深度学习构建一个障碍物检测系统&#xff0c;并提供了完整的实现代码。该系统基于强大的YOLOv8算法&#xff0c;并对比了YOLOv7、YOLOv6、YOLOv5&#xff0c;展示了不同模型间的性能…...

从零开始学HCIA之SDN04

1、VXLAN数据封装 &#xff08;1&#xff09;Original L2 Frame&#xff0c;原始以太网报文&#xff0c;业务应用的以太网帧。 &#xff08;2&#xff09;VXLAN Header&#xff0c;VXLAN协议新定义的VXLAN头&#xff0c;长度为8字节。VXLAN ID&#xff08;VNI&#xff09;为2…...

GET 和 POST 有什么区别?

1.从缓存的角度&#xff0c;GET 请求会被浏览器主动缓存下来&#xff0c;留下历史记录&#xff0c;而 POST 默认不会。 2.从编码的角度&#xff0c;GET 只能进行 URL 编码&#xff0c;只能接收 ASCII 字符&#xff0c;而 POST 没有限制。 3.从参数的角度&#xff0c;GET 一般放…...

Keil MDK许可证错误解决方案与调试技巧

1. 问题现象与背景解析 当使用Keil MDK进行嵌入式开发时&#xff0c;部分用户在编译或调试阶段会遇到"LICENSE: License Mapping Failed"的错误提示。这个报错通常出现在以下两种场景&#xff1a; 编译阶段&#xff1a;在Build Output窗口突然弹出红色错误提示&…...

告别K-Means!用Python手撸Science上的DPC算法,搞定任意形状数据聚类

密度峰值聚类DPC&#xff1a;用Python突破传统K-Means的局限当面对螺旋形、环形或交叉分布的数据集时&#xff0c;许多数据科学从业者都有过这样的经历&#xff1a;反复调整K-Means参数却始终无法获得理想的聚类效果。这正是2014年发表在《Science》上的密度峰值聚类算法(DPC)要…...

Burp Suite扫描深度配置指南:被动扫描、主动扫描与自定义插入点协同调优

1. 这不是“点一下就扫完”的配置&#xff0c;而是扫描质量的分水岭 很多人把 Burp Suite Scanner 当成一个“自动漏洞探测器”——填个 URL&#xff0c;点下“Active Scan”&#xff0c;等它跑完弹出一堆高危告警&#xff0c;就以为任务完成了。我见过太多这样的场景&#xff…...

机器学习模型监控实战:KS检验与BC系数在大数据供应链预测中的应用

1. 项目概述&#xff1a;为什么模型上线后&#xff0c;监控比训练更重要&#xff1f;在机器学习项目里&#xff0c;我们常常把80%的精力花在数据清洗、特征工程和模型调优上&#xff0c;觉得模型一旦上线&#xff0c;任务就完成了。但真实的生产环境会给你上一课&#xff1a;一…...

Keil µVision调试器内存操作技巧与应用

1. Vision调试器中的内存区域操作概述在嵌入式开发过程中&#xff0c;调试阶段经常需要对目标设备的内存区域进行各种操作。Keil Vision调试器提供了强大的内存操作功能&#xff0c;可以显著提高开发效率。作为一名长期使用Keil工具链的嵌入式开发者&#xff0c;我发现这些功能…...

Hexo 排坑记:删除所有文章后首页无法访问(Cannot GET)

背景 最近在使用 Hexo Butterfly 主题搭建个人博客时&#xff0c;遇到一个奇怪的问题&#xff1a;我把 source/_posts 下的所有文章都删掉后&#xff0c;重新生成并启动本地服务器&#xff0c;访问 http://localhost:4000 竟然直接显示 Cannot GET /&#xff0c;首页完全打不开…...

Midjourney颗粒度失控急救包:1键降噪工作流(含自研NoiseMap可视化插件+Discord私密调试频道入口)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Midjourney颗粒感失控的本质诊断与认知重构 Midjourney生成图像中异常的颗粒感&#xff08;graininess&#xff09;&#xff0c;并非单纯由参数噪声或分辨率不足引发&#xff0c;而是模型隐空间解码过程中多层…...

API安全设计与防护实战

API安全设计与防护实战 一、API安全概述 API作为系统间交互的接口&#xff0c;是攻击的主要目标。一个安全的API设计需要考虑多个层面的防护&#xff0c;包括认证、授权、数据保护、攻击防护等。 二、API认证机制 2.1 API Key认证 Component public class ApiKeyFilter ex…...

如何重塑贴吧体验:贴吧Lite带来的极致纯净浏览革新

如何重塑贴吧体验&#xff1a;贴吧Lite带来的极致纯净浏览革新 【免费下载链接】TiebaLite 贴吧 Lite 项目地址: https://gitcode.com/gh_mirrors/tieb/TiebaLite 厌倦了官方贴吧应用的臃肿体验和无处不在的广告干扰&#xff1f;贴吧Lite作为一款革命性的第三方贴吧客户…...

终极Windows远程桌面解锁方案:RDP Wrapper Library完整配置指南

终极Windows远程桌面解锁方案&#xff1a;RDP Wrapper Library完整配置指南 【免费下载链接】rdpwrap RDP Wrapper Library 项目地址: https://gitcode.com/gh_mirrors/rd/rdpwrap 你是否曾因Windows家庭版无法支持多人远程桌面连接而感到困扰&#xff1f;RDP Wrapper L…...