B3626 跳跃机器人

2024-03-23 23:20
文章标签 跳跃 机器人 b3626

本文主要是介绍B3626 跳跃机器人,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题目描述

地上有一排格子,共 n 个位置。机器猫站在第一个格子上,需要取第 n 个格子里的东西。

机器猫当然不愿意自己跑过去,所以机器猫从口袋里掏出了一个机器人!这个机器人的行动遵循下面的规则:

  • 初始时,机器人位于 1 号格子
  • 若机器人目前在 x 格子,那么它可以跳跃到 x−1,x+1,2x 里的一个格子(不允许跳出界)

问机器人最少需要多少次跳跃,才能到达 n 号格子。

输入格式

仅一行,一个正整数,表示 n。

输出格式

仅一行,一个正整数,表示最少跳跃次数。

输入输出样例

输入 #1

30

输出 #1

6

输入 #2

50

输出 #2

7

输入 #3

64

输出 #3

6

输入 #4

63

输出 #4

8

说明/提示

样例解释

第一组样例:
1→2→4→8→16→15→30

第二组样例:
1→2→3→6→12→24→25→50

第三组样例:
1→2→4→8→16→32→64

第四组样例:
1→2→4→8→16→32→31→62→63

请注意在本组样例中,63 不能通过 64−1 得到,因为格子总数为 63,没有第 64 个格子。

数据规模与约定

对于 100% 的数据,有 1≤n≤1000000。

思路

用BFS做,分为队列和结构体两种解法。

完整代码

队列:

#include<bits/stdc++.h>
using namespace std;
queue<pair<int,int> >pt;
bool v[1000001];
int n;
void bfs(int a){pt.push(make_pair(1,0));v[1]=true;while(!pt.empty()){int p=pt.front().first;int t=pt.front().second;pt.pop();if(p==a){cout<<t;//freopen("b.out","w",stdout);return;}if(p-1>=1&&!v[p-1]){v[p-1]=true;pt.push(make_pair(p-1,t+1));}if(p+1<=n&&!v[p+1]){v[p+1]=true;pt.push(make_pair(p+1,t+1));}if(p*2<=n&&!v[p*2]){v[p*2]=true;pt.push(make_pair(p*2,t+1));}}
}
int main(){cin>>n;//freopen("a.in","r",stdin);bfs(n);return 0;
}

结构体+队列:

#include<bits/stdc++.h>//T2-2
using namespace std;
struct node{int l,ans;
};
queue<node> q;
int n,vis[1000010];
int main(){q.push({1,0});cin>>n;while(!q.empty()){node t=q.front();q.pop();if(vis[t.l])continue;vis[t.l]=1;if(t.l<=0||t.l>n)continue;if(t.l==n){cout<<t.ans;return 0;}int d1=t.l-1,d2=t.l+1,d3=t.l*2;if(d1>1&&d1<=n&&vis[d1]==0){q.push({d1,t.ans+1});}if(d2>1&&d2<=n&&vis[d2]==0){q.push({d2,t.ans+1});}if(d3>1&&d3<=n&&vis[d3]==0){q.push({d3,t.ans+1});}}return 0;
}

这篇关于B3626 跳跃机器人的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/839835

相关文章

基于树梅派的视频监控机器人Verybot

最近这段时间做了一个基于树梅派 ( raspberry pi ) 的视频监控机器人平台 Verybot ,现在打算把这个机器人的一些图片、视频、设计思路进行公开,并且希望跟大家一起研究相关的各种问题,下面是两张机器人的照片:         图片1:                   图片2                    这个平台的基本组成是:

【机器人工具箱Robotics Toolbox开发笔记(二十)】机器人工具箱SerialLink I类函数参数说明

机器人工具箱中的SerialLink表示串联机器人型机器人的具体类。该类使用D-H参数描述,每个关节一组。SerialLink I类包含的参数如表1所示。 表1 SerialLink I类参数 参  数 意    义 参  数 意    义 plot 显示机器人的图形表示 jacobn 工具坐标系中的雅可比矩阵 plot3D 显示机器人3D图形模型 Jacob_dot

机器人助力上下料搬运,加速仓库转运自动化

近年来,国内制造业领域掀起了一股智能化改造的浪潮,众多工厂纷纷采纳富唯智能提供的先进物流解决方案,这一举措显著优化了生产流程,实现了生产效率的飞跃式增长。得益于这些成功案例,某信息技术服务企业在工厂智能物流建设的进程中,也选择了与富唯智能合作。 为了应对日益增长的物料搬运需求,匹配成品输出节拍,该公司引入了富唯智能复合机器人AMR与搬运机器人AGV,实现了仓库成品搬运自动化,大幅减少人工

【最新华为OD机试E卷-支持在线评测】机器人活动区域(100分)多语言题解-(Python/C/JavaScript/Java/Cpp)

🍭 大家好这里是春秋招笔试突围 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-E/D卷的三语言AC题解 💻 ACM金牌🏅️团队| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 🍿 最新华为OD机试D卷目录,全、新、准,题目覆盖率达 95% 以上,支持题目在线评测,专栏文章质量平均 94 分 最新华为OD机试目录: https://blog.

Dify.ai:部署自己的 AI 应用、知识库机器人,简单易用

Dify.ai:部署自己的 AI 应用、知识库机器人,简单易用 今天,来分享下 Dify.AI 这个产品,一句话介绍:可供普通人简单易用的部署生成出一个 AI 应用。这是一种使用人工智能技术来帮助团队开发和运营 AI 应用的工具。 什么是 Dify.ai Dify.ai 是一个易于使用的 LLMOps 平台,旨在帮助更多的人创建可持续的、AI 原生的应用。通过对各种应用类型的可视化编排,Di

机器人可能会在月球上提供帮助

登月是我们这个时代最具标志性的事件之一,这可能还算轻描淡写了:这是我们迄今为止在物理上探索得最远的一次。我听过一些当时的老广播,它们可以让你想象出这次航行的重要性。 现在,研究人员表示,我们可能很快就能重返月球,甚至可能很快就会有人类任务前往火星。 火星。艺术家:NASA 这次会有什么不同呢? 有一点是确定的:机器人将大力协助—— 非常多。 在麻省理工学院,我们的一些团队正在开发突破性的

【人工智能/机器学习/机器人】数学基础-学习笔记

函数 奇偶性: 偶函数: f ( − x ) = f ( x ) f(-x)=f(x) f(−x)=f(x)     y轴对称 f ( x ) = x 2 f(x)=x^2 f(x)=x2     f ( − x ) = ( − x ) 2 = x 2 = f ( x ) f(-x)=(-x)^2=x^2=f(x) f(−x)=(−x)2=x2=f(x) 奇函数: f ( − x )

全国机器人大赛 Robocon 常州工学院团队首战国三

全国机器人大赛 Robocon 常州工学院团队首战国三 通宵7天7夜,常州工学院RC团队,首次闯入全国机器人大赛国赛,并成功得分! 不同于老牌强队,常州工学院(下面用"常工"代替)的这只队伍,大多数成员由大一组成,核心岗位由一些大二各个专业基础最为扎实的学生担任。 7月7日,19:26分。卡在报道的最后10分钟,由在团队项管和电控成功领队签到,光电Robot成为最近几年唯一一只冲入Roboc

论文速读|利用局部性提高机器人操作的样本效率

项目地址:SGRv2  本文提出了SGRv2,一个系统的视觉运动政策框架,通过整合动作局部性提高了样本效率。在多个模拟和真实世界环境中进行的广泛评估表明,SGRv2在数据有限的情况下表现出色,并且在不同的控制模式下保持一致的性能。未来的工作可以进一步探索将扩散政策与局部性框架结合,以增强在现实世界中的性能,并扩展泛化测试的范围。 论文初读:

55.跳跃游戏

给你一个非负整数数组 nums ,你最初位于数组的 第一个下标 。数组中的每个元素代表你在该位置可以跳跃的最大长度。 判断你是否能够到达最后一个下标,如果可以,返回 true ;否则,返回 false 。   /*** ClassName: Solution* Package: PACKAGE_NAME* Description:* @Author: GYF* @Create: 2024