2971:抓住那头牛

news/2025/9/20 21:18:40/文章来源:https://www.cnblogs.com/1a2s/p/19102861

题目

总时间限制: 2000ms 内存限制: 65536kB

描述

农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0<=N<=100000),牛位于点K(0<=K<=100000)。农夫有两种移动方式:

1、从X移动到X-1或X+1,每次移动花费一分钟
2、从X移动到2*X,每次移动花费一分钟

假设牛没有意识到农夫的行动,站在原地不动。农夫最少要花多少时间才能抓住牛?

输入

两个整数,N和K

输出

一个整数,农夫抓到牛所要花费的最小分钟数

样例输入

5 17

样例输出

4

题意

农夫起始位置为N,牛的位置为K,输入为N和K,农夫每分钟可以向左或向右移动一步(从X到X-1或X+1),或者将当前位置翻倍(从X到2*X),每次移动花费一分钟,输出最少分钟数。

思路

用深度优先搜索+递归,从牛的位置K开始向农夫的位置N查找。如果农夫位置N大于牛位置K,通过每次后退一步的方式(花费N-K分钟);否则,从K位置开始,通过三种操作反向思考:当K为奇数时,+1或-1,当K为偶数时,/2(对应农夫的*2)

代码

#include<bits/stdc++.h>
using namespace std;
int n,k,ans;
void d(int x,int y,int sum){//递归函数,x是农夫位置,y是牛位置,sum是已花费时间if(ans<=sum) return;//如果当前时间已经超过已知最小时间,返回ans=min(ans,sum+abs(y-x));//更新最短时间为当前时间加上走到牛的位置的时间if(x==y){//如果已经到达ans=min(ans,sum);//更新时间return;}if(x>y){//如果农夫在牛右边,向左走d(x,y+1,sum+1);}else{//如果农夫在牛左边if(y%2!=0){//如果牛的位置是奇数d(x,y+1,sum+1);//牛位置+1d(x,y-1,sum+1);//牛位置-1}else{//如果牛的位置是偶数d(x,y/2,sum+1);//牛位置/2}}return;
}
int main(){cin>>n>>k;if(n>k){//如果农夫在牛右边,向左走cout<<n-k;return 0;}ans=k-n;//初始化答案为直接走到的时间d(n,k,0);//调用cout<<ans;return 0;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/908547.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

高效测试的第一步:5个用例设计基础思维模型

测试之路,思维先行。掌握这些基础思维模型,让你在测试领域走得更远更稳。欢迎分享你的测试设计经验和心得!在软件开发领域,测试是确保产品质量的关键环节。而对于测试工作来说,测试用例设计无疑是核心中的核心。一…

MFC Button 控件完全指南:从基础到进阶 - 指南

MFC Button 控件完全指南:从基础到进阶 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

Python笔记总结

python简练记录1 Python语言概述 1.1 走进Python 1.1.1 Python简史 一种解释型的、面向对象的、带有动态语义的高级程序设计语言。 使用Python作为语言的名字,因为Guido是英国幽默剧团 Monty Python飞行马戏团的fans。…

vulnhub靶机:GoldenEye-v1

扫描挖掘本地的IP地址信息: nmap -sT 192.168.111.101发现开放了25,80端口 访问http://192.168.111.101:80提示可以访问/sev-home/ ,访问后让我们输入账号密码,查看页面原代码 访问/terminal.js提示账号Boris,Nata…

8465:马走日

题目 总时间限制: 1000ms 内存限制: 65536kB 描述 马在中国象棋以日字形规则移动。 请编写一段程序,给定n*m大小的棋盘,以及马的初始位置(x,y),要求不能重复经过棋盘上的同一个点,计算马可以有多少途径遍历棋盘上…

性能调优之NUMA调优

什么是NUMA NUMA(Non-Uniform Memory Access,非统一内存访问)是一种用于多处理器系统的内存设计架构。在NUMA系统中,每个处理器(或一组处理器)拥有自己的本地内存,处理器访问本地内存的速度比访问其他处理器的内…

深入解析:SpringMVC静态资源与Servlet容器指南

深入解析:SpringMVC静态资源与Servlet容器指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", &…

CCPC Online 2025 游寄

CCPC Online 2025 游寄 赛时 随机 roll 题,先 roll 到 \(K\) 然后没看懂,又 roll 到 \(E\) 谁家好人上来就把两道签到题就 roll 完了() 和队友讨论了一下 \(E\),发现很简单,队友推了个式子过了 回头一看,发现自…

CentOS 7 容器时遇到了 yum update 报错

CentOS 7 容器时遇到了 yum update 报错你在 CentOS 容器中执行 yum update -y 时遇到的错误, ` Loaded plugins: fastestmirror, ovl Determining fastest mirrors Could not retrieve mirrorlist http://mirrorlist…

MIT新论文:数据即上限,扩散模型的关键能力来自图像统计规律,而非复杂架构

现在的文生图模型已经十分强大了,例如我们在输入框敲下 “a photorealistic astronaut riding a horse on the moon”,几秒钟后屏幕生成从未出现过的图像,细节丰富,几近完美。扩散模型(diffusion models)推动了这…

实用指南:光学神经网络与人工智能应用

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Zabbix 企业级监控架构实战指南:从搭建、可视化到智能告警

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

基于MATLAB的视频动态目标跟踪检测搭建方案

基于MATLAB的视频动态目标跟踪检测搭建方案pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "…

第三篇:Windows10/11软件集成与系统优化 - 教程

第三篇:Windows10/11软件集成与系统优化 - 教程2025-09-20 20:21 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display…

U522155 数据生成(小心电脑)

// code by 樓影沫瞬_Hz17 #include <bits/stdc++.h> using namespace std;#define getc() getchar_unlocked() #define putc(a) putchar_unlocked(a) #define en_ putc(\n) #define e_ putc( )using pii = pair…

Windows-Appx

Windows-Appx导航 (返回顶部)1. PS_modules 2. Appx 3. Get-AppxPackage3.1 Syntax 语法 3.2 Description 描述 3.3 Examples 3.4 Parameters 参数4. Remove-AppxPackage4.1 Syntax 4.2 Description 4.3 Parameters5. …

实用指南:OSG中osgFX库

实用指南:OSG中osgFX库pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &qu…

2025.9.20——1橙

终于结束初赛,可以好好写写编程题了。 普及- P10108 [GESP202312 六级] 闯关游戏 很简单的一道dp题,但我因为没考虑到答案可能是负数,卡了好几次。

CSP 2025 游记

前言 被迫报了 J 组,不好评价。 初赛 J 组 上午坐大巴在车上睡着了,然后正好在考点门口被颠醒了…… 提前半个小时到了考点,又在桌子上趴了一会,不过没睡着。两个监考老师左右脑互搏,至今不知道准考证号前四位要填…

配置Spring框架以连接SQL Server数据库

Spring框架是一个开源的企业级应用框架,用于简化Java开发工作,通过依赖注入(DI)和面向切面编程(AOP)等核心功能支持程序的健壮性和易维护性。要配置Spring框架以连接SQL Server数据库,需要遵循几个关键步骤,从…