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

【题解-洛谷】B3626 跳跃机器人

题目:B3626 跳跃机器人

题目描述

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

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

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

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

输入格式

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

输出格式

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

输入输出样例 #1

输入 #1

30

输出 #1

6

输入输出样例 #2

输入 #2

50

输出 #2

7

输入输出样例 #3

输入 #3

64

输出 #3

6

输入输出样例 #4

输入 #4

63

输出 #4

8

说明/提示

样例解释

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

第二组样例:
1 → 2 → 3 → 6 → 12 → 24 → 25 → 50 1\to 2\to 3\to6\to12\to24\to25\to 50 123612242550

第三组样例:
1 → 2 → 4 → 8 → 16 → 32 → 64 1\to 2\to4\to8\to16\to32\to64 1248163264

第四组样例:
1 → 2 → 4 → 8 → 16 → 32 → 31 → 62 → 63 1\to 2\to4\to8\to16\to32\to31\to62\to63 12481632316263

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

数据规模与约定

对于 100 % 100\% 100% 的数据,有 1 ≤ n ≤ 1000000 1\leq n \leq 1000000 1n1000000

代码

#include<iostream>
#include<cstring>using namespace std;const int Maxn = 1000000 + 10;int n, d[Maxn], hh, tt = -1, q[Maxn];void insert(int x){q[++ tt] = x;
}void dele(){hh ++;
}bool isempty(){return hh > tt;
}int bfs(){memset(d, -1, sizeof d);insert(1);d[1] = 0;int dx[3] = {-1, 1, 2};while(!isempty()){int t = q[hh];dele();for(int i = 0; i < 3; i ++){int newx;if(i < 2){newx = t + dx[i];}else{newx = t * dx[i];}if(newx >= 1 && newx <= n && d[newx] == -1){insert(newx);d[newx] = d[t] + 1;}if(newx == n){return d[newx];}}}
}int main(){scanf("%d", &n);int res = bfs();printf("%d", res);return 0;
}

结果

在这里插入图片描述
在这里插入图片描述

http://www.xdnf.cn/news/930601.html

相关文章:

  • JavaWeb——登录(14/16):登录校验-Interceptor-详解(使用细节、拦截路径的配置、匹配规则、执行流程、拦截器与过滤器的区别)
  • 【华为云Astro 轻应用】组装“待处理工单”页面示例
  • C语言基础面试问答
  • 【人工智能 | 项目开发】Python Flask实现本地AI大模型可视化界面
  • 苍穹外卖-day01
  • 用 DeepSeek 高效完成数据分析与挖掘
  • Bootstrap Table开源的企业级数据表格集成
  • 大数据学习(133)-Hive数据分析2
  • 论文笔记:Large Language Models for Next Point-of-Interest Recommendation
  • 云原生监控体系建设:Prometheus+Grafana的企业级实践
  • 作为点的对象CenterNet论文阅读
  • 【论文阅读30】Bi-LSTM(2024)
  • Spring Boot + Flink + FlinkCDC 实现 MySQL 同步到 MySQL
  • 【Java学习笔记】Arrays类
  • 视频音频去掉开头结尾 视频去掉前n秒后n秒 电视剧去掉开头歌曲
  • 408第一季 - 数据结构 - 图
  • 数据结构排序
  • AU音频软件|Audition 2025网盘下载与安装教程指南
  • AURA智能助手在物联网(IoT)和数字化改造领域的使用
  • Linux运维新人自用笔记(乌班图apt命令和dpkg命令、两系统指令区别,rpm解决路径依赖、免安装配置java环境)
  • 机器学习用于算法交易(Matlab实现)
  • 在VSCode中使用Ultralytics扩展
  • 探索 Shell:选择适合你的命令行利器 bash, zsh, fish, dash, sh...
  • RabbitMQ work模型
  • 基于SpringBoot利用死信队列解决RabbitMQ业务队列故障重试无效场景问题
  • RabbitMQ 的高可用性
  • 比较数据迁移后MySQL数据库和PostgreSQL数据仓库中的表
  • [蓝桥杯 2024 国 B] 蚂蚁开会
  • 分享今天做的力扣SQL题
  • 2025.6.8