吃水果(贪心)

文章目录

  • 题目描述
    • 输入格式
    • 输出格式
    • 样例输入
    • 样例输出
    • 提交链接
    • 提示
  • 解析
  • 参考代码

题目描述

最近米咔买了 n n n 个苹果和 m m m 个香蕉,他每天可以选择吃掉一个苹果和一个香蕉(必须都吃一个,即如果其中一种水果的数量为 0 0 0,则他不能进行这个操作),或者使用魔法将某一种水果的数量翻倍。

现在米咔想吃西瓜了,但是他的主人赛小息不让他买新水果,除非苹果和香蕉没有了,即数量都是 0 0 0 了。

现在米咔想知道,最少用多少天他可以吃光苹果和香蕉。

可以证明的是,一定存在一种方案可以让米咔在若干天后吃光苹果和香蕉。

输入格式

第一行一个正整数 T ( T ≤ 100 ) T(T≤100) T(T100),代表数据组数。

接下来 T T T 行每行两个正整数 n , m ( n , m ≤ 100000 ) n,m(n,m ≤100000) nm(nm100000)

输出格式

T T T 行,每行一个正整数代表答案。

样例输入

3
1 1
1 2
2 5

样例输出

1
3
7

提交链接

吃水果

提示

对于第三组测试样例 ( 2 , 5 ) (2,5) 2,5,第一天令 n n n 翻倍变成 ( 4 , 5 ) (4,5) 4,5,接下来连续吃三天水果变成 ( 1 , 2 ) (1,2) 1,2,第五天令 n n n 翻倍变成 ( 2 , 2 ) (2,2) 2,2,接下来连续吃两天水果,在第七天时吃光苹果和香蕉。

解析

💡关键观察点是:

  • 每次吃水果操作减少 ( 1 , 1 ) (1,1) (1,1),所以最终苹果和香蕉数量必须相等才能吃光。

  • 你可以通过对某一边翻倍,使两者变得相等(或接近),然后吃掉。

✨ 主要策略
我们想办法让两个数尽量相等且尽量大,然后每天消耗 ( 1 , 1 ) (1,1) (1,1)。每次操作要么吃掉一对水果,要么对少的那个翻倍,让它追上多的那个。

参考代码

#include <bits/stdc++.h>
using namespace std;int main()
{int t, n, m;cin >> t;   //t组样例while (t--){cin >> n >> m;int cnt = 0;  //统计答案if(n > m)swap(n , m);while(n != m){if(n * 2 <= m)     //小的那个可以翻倍n *= 2 , cnt++;elsen-- , m-- , cnt++;     //当前这一天吃(1,1)}cnt += n;   //跳出while循环的条件为n==m,最终吃n天全部减小到0cout << cnt << endl;}return 0;
}

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

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

相关文章

【FAQ】HarmonyOS SDK 闭源开放能力 —Account Kit(4)

1.问题描述&#xff1a; LoginWithHuaweiIDButton不支持深色模式下定制文字和loading样式&#xff1f; 解决方案&#xff1a; LoginWithHuaweiIDButtonParams 中的有个supportDarkMode属性&#xff0c;设置为true后&#xff0c;需要自行响应系统的变化&#xff0c;见文档&am…

【C语言】指针详解(接)

前言&#xff1a; 文接上章&#xff0c;在上章节讲解了部分指针知识点&#xff0c;在本章节为大家继续提供。 六指针与字符串&#xff1a;C 语言字符串的本质 在 C 语言中&#xff0c;字符串实际上是一个以\0结尾的字符数组。字符串常量本质上是指向字符数组首元素的指针&…

第5讲、Odoo 18 CLI 模块源码全解读

Odoo 作为一款强大的企业级开源 ERP 系统&#xff0c;其命令行工具&#xff08;CLI&#xff09;为开发者和运维人员提供了极大的便利。Odoo 18 的 odoo/cli 目录&#xff0c;正是这些命令行工具的核心实现地。本文将结合源码&#xff0c;详细解读每个 CLI 文件的功能与实现机制…

如何将 PDF 文件中的文本提取为 YAML(教程)

这篇博客文章将向你展示如何将 PDF 转换为 YAML&#xff0c;通过提取带有结构标签的标记内容来实现。 什么是结构化 PDF&#xff1f; 一些 PDF 文件包含结构化内容&#xff0c;也称为带标签&#xff08;tagged&#xff09;或标记内容&#xff08;marked content&#xff09;&…

银发团扎堆本地游,“微度假”模式如何盘活银发旅游市场?

​ 银发微度假&#xff0c;席卷江浙沪 作者 | AgeClub吕娆炜 前言 均价200-300元的两天一夜微度假产品&#xff0c;正在中老年客群中走红。 “我们属于酒店直营&#xff0c;没有中间商赚差价&#xff0c;老年人乘坐地铁到目的地站&#xff0c;会有大巴负责接送&#xff0c;半…

苹果iOS应用ipa文件进行签名后无法连接网络,我们该怎么解决

苹果iOS应用ipa文件在经过签名处理后&#xff0c;如果发现无法连接网络&#xff0c;这可能会给用户带来极大的不便。为了解决这一问题&#xff0c;可以采取一系列的排查和解决步骤&#xff0c;以确保应用能够顺利地访问互联网。 首先&#xff0c;确保你的设备已经连接到一个稳…

MySQL 中 ROW_NUMBER() 函数详解

MySQL 中 ROW_NUMBER() 函数详解 ROW_NUMBER() 是 SQL 窗口函数中的一种&#xff0c;用于为查询结果集中的每一行分配一个​​唯一的连续序号​​。与 RANK() 和 DENSE_RANK() 不同&#xff0c;ROW_NUMBER() 不会处理重复值&#xff0c;即使排序字段值相同&#xff0c;也会严格…

Leetcode百题斩-二叉树

二叉树作为经典面试系列&#xff0c;那么当然要来看看。总计14道题&#xff0c;包含大量的简单题&#xff0c;说明这确实是个比较基础的专题。快速过快速过。 先构造一个二叉树数据结构。 public class TreeNode {int val;TreeNode left;TreeNode right;TreeNode() {}TreeNode…

Asp.Net Core 如何配置在Swagger中带JWT报文头

文章目录 前言一、配置方法二、使用1、运行应用程序并导航到 /swagger2、点击右上角的 Authorize 按钮。3、输入 JWT 令牌&#xff0c;格式为 Bearer your_jwt_token。4、后续请求将自动携带 Authorization 头。 三、注意事项总结 前言 配置Swagger支持JWT 一、配置方法 在 …

MySQL 定时逻辑备份

文章目录 配置密码编写备份脚本配置权限定时任务配置检查效果如果不想保留明文密码手工配置备份密码修改备份命令 配置密码 cat >> /root/.my.cnf <<"EOF" [client] userroot passwordYourPassword EOF编写备份脚本 cat > /usr/local/bin/mysql_dum…

在qt中使用c++实现与Twincat3 PLC变量通信

这是一个只针对新手的教程&#xff0c;下载安装就不说了&#xff0c;我下的是TC31-Full-Setup.3.1.4024.66.exe是这个版本&#xff0c;其他版本应该问题不大。 先创建一个项目 选中SYSTEM&#xff0c;在右侧点击Choose Target&#xff08;接下来界面跟我不一样没关系&#xf…

云原生微服务devops项目管理英文表述详解

文章目录 1.云原生CNCF trail map云原生技术栈路线图 2. 微服务单体应用与微服务应用架构区别GraphQLKey differences: GraphQL and REST 3.容器化&编排dockerKubernetesContainers and ContainerizationContainer Basics 4. DevOps & CI/CDTerms and Definitions 5.Ag…

pyside 使用pyinstaller导出exe(含ui文件)

第一步&#xff1a;首先确保安装好pyinstall&#xff0c;终端运行 pyinstaller -w main.py 生成两个文件夹 打开exe文件报错&#xff0c;问题是ui文件找不到 第二步&#xff1a;将ui文件复制到exe所在文件夹&#xff0c;打开成功 ![在这里插入图片描述](https://i-blog.csdni…

kerberos在无痕浏览器 获取用户信息失败 如何判断是否无痕浏览器

kerberos在无痕浏览器 获取用户信息失败 如何判断是否无痕浏览器 js 代码 其他地方用直接导入js getCurrentUserId 这是自己后端获取 域账号地址 我是成功返回200 //true普通浏览器 fasle 无痕浏览器 export const checkBrowserMode async () > {try {const response a…

HTML 计算网页的PPI

HTML 计算网页的PPI vscode上安装live server插件&#xff0c;可以实时看网页预览 有个疑问&#xff1a; 鸿蒙density是按照类别写死的吗&#xff0c;手机520dpi 折叠屏426dpi 平板360dpi <html lang"en" data - overlayscrollbars - initialize><header&…

华为OD机试真题——Boss的收入(分销网络提成计算)(2025A卷:100分)Java/python/JavaScript/C/C++/GO最佳实现

2025 A卷 100分 题型 本专栏内全部题目均提供Java、python、JavaScript、C、C++、GO六种语言的最佳实现方式; 并且每种语言均涵盖详细的问题分析、解题思路、代码实现、代码详解、3个测试用例以及综合分析; 本文收录于专栏:《2025华为OD真题目录+全流程解析+备考攻略+经验分…

<el-date-picker>组件传参时,选中时间和传参偏差8小时

遇到一个bug&#xff0c;不仔细看&#xff0c;都不一定能发现&#xff0c;bug描述&#xff1a;我们有一个搜索框&#xff0c;里面有一个时间选择器&#xff0c;当我使用<el-date-picker>时&#xff0c;我发现当我选择时分秒之后&#xff0c;显示都正常&#xff0c;但是当…

uni-app开发特殊社交APP

uni-app开发特殊社交APP 目录 1.展示APP功能 2.展示项目结构 3.关于我的GitHub 引言 博主最近自己在GitHub上面上传了一个关于社交软件的项目&#xff08;该项目早已开发完毕&#xff09;, 这个社交软件比较特殊, 被称之为blind-date&#xff0c; blind-date 是基于 uni-…

深入研究Azure 容器网络接口 (CNI) overlay

启用cni overlay 在通过portal创建aks的时候,在networking配置上,选中下面的选项即可启用。 通过CLI创建AKS 要创建具有 CNI 覆盖网络的 AKS 群集,需要在创建群集时指定 --network-plugin azure 和 --network-plugin-mode 覆盖选项。 还需要指定 --pod-cidr 选项来定义群…