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

Catch That Cow POJ - 3278

农夫约翰得知了一头逃亡奶牛的位置,想要立即抓住她。他起始于数轴上的点N(0 ≤ N ≤ 100,000),而奶牛位于同一条数轴上的点K(0 ≤ K ≤ 100,000)。农夫约翰有两种移动方式:步行和传送。

* 步行:约翰可以从任意点X在一分钟内移动到X-1或X+1的位置
* 传送:约翰可以从任意点X在一分钟内移动到2×X的位置

如果奶牛没有察觉被追踪而始终保持静止,农夫约翰需要多长时间才能抓住它?

输入

第1行:两个用空格分隔的整数:NK

输出

第1行:农夫约翰抓住逃亡奶牛所需的最短时间(以分钟为单位)

样例

InputcopyOutputcopy
5 17
4

提示

农夫约翰抓住逃亡奶牛的最快路径是:5-10-9-18-17,共耗时4分钟。

代码

#include <stdio.h>
#include <string.h>#define MAXN 100005
#define Que que[tail][0] = tx, que[tail][1] = fstep+1, vis[tx] = 1, tail++
int vis[MAXN], que[MAXN * 30][2];
int n, k;
int is(int x) {if (x >= 0 && x <= 100000 && vis[x] == 0) return 1; // 注意! x >= 0return 0;
}
int main()
{scanf("%d%d", &n, &k);int head = 0, tail = 1;memset(vis, 0, sizeof vis), memset(que, 0, sizeof que);que[0][0] = n, que[0][1] = 0, vis[n] = 1;while (head < tail){int fx = que[head][0], fstep = que[head][1], tx; head++;if (fx == k) {printf("%d", fstep); return 0;}// x - 1tx = fx - 1;if (is(tx)) Que;// x + 1tx = fx + 1;if (is(tx)) Que;// x * 2;tx = fx * 2;if (is(tx)) Que;}return 0;
}

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

相关文章:

  • java代码性能优化
  • 什么是Docker容器?
  • 初探Linux内核:解锁Linux操作系统的基本核心的奥秘(二)
  • JavaSE:面向对象进阶之接口(Interface)
  • 基于频分复用导频的MMSE信道估计方法设计与仿真
  • kuboard自带ETCD存储满了处理方案
  • 编程技能:格式化打印01,vsprintf 函数族简介
  • (22)大文件流式处理
  • MySql--定义表存储引擎、字符集和排序规则
  • 黑森林实验室 FLUX.1Kontext:革新图像修改的 AI 力量
  • 深度学习初探:当机器开始思考(superior哥AI系列第1期)
  • SolidWorks 文件打开时电脑卡顿问题分析与解决
  • 小狼毫输入法雾凇拼音输入方案辅码由默认的部件拆字/拼音输入方案修改为五笔画方案
  • KVM 安装 Ubuntu 22
  • 【合集】Linux——31个普通信号
  • Java基础 Day25
  • 解决Acrobat印前检查功能提示无法为用户配置文件问题
  • 调试技巧总结
  • plotbunni开源程序是具有 AI 辅助的 FOSS 小说写作套件
  • @Docker Compose部署Alertmanager
  • 判断质数的基础方法
  • 动手学深度学习pytorch学习笔记 —— 第五章
  • 【瑶池数据库训练营及解决方案本周精选(探索PolarDB,参与RDS迁移、连接训练营)】
  • [IMX] 10.串行外围设备接口 - SPI
  • 抢占先机!品牌如何利用软文营销领跑内容营销赛道?
  • Wayland模式X11模式LinuxFB​​模式,Linux图形显示系统三大模式深度解析
  • 如何做好一份技术文档:构建知识传递的精准航海图
  • 【原理扫描】不安全的crossdomain.xml文件和CORS(跨站资源共享)原始验证失败验证与彻底方案
  • CATIA高效工作指南——测量分析篇(一)
  • 算法题(159):快速幂