链接:https://ac.nowcoder.com/acm/contest/5026/B
来源:牛客网

题目描述
最近米咔买了n个苹果和m个香蕉,他每天可以选择吃掉一个苹果和一个香蕉(必须都吃一个,即如果其中一种水果的数量为0,则他不能进行这个操作),或者使用魔法将某一种水果的数量翻倍。
现在米咔想吃西瓜了,但是他的主人赛小息不让他买新水果,除非苹果和香蕉没有了,即数量都是0了。

现在米咔想知道,最少用多少天他可以吃光苹果和香蕉。
可以证明的是,一定存在一种方案可以让米咔在若干天后吃光苹果和香蕉。

输入描述:
第一行一个正整数T(T≤100),代表数据组数。

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

输出描述:
共T行,每行一个正整数代表答案。
示例1
输入
3
1 1
1 2
2 5
输出
1
3
7
说明
对于第三组测试样例(2,5),第一天令n翻倍变成(4,5),接下来连续吃三天水果变成(1,2),第五天令n翻倍变成(2,2),接下来连续吃两天水果,在第七天时吃光苹果和香蕉。

解题思路

1

首先解释一下为什么一定有一种方案,可以吃完。如果大家已经理解,直接跳过看2

假设a < b, 差值d = b - a;
1、如果a > d,则先每天各吃一个苹果和香蕉,这个时候差值d是不变的,直到a = d , 这时b = a + d=2a , 我们将a翻倍后,a = b , 然后再吃a天就可以吃完。
2、如果a < d,将a翻倍,直到满足情况1。
3、如果a = d,那么此时首先将a翻倍后,a = b,直接吃完就行。
所以该题一定有解。

2

在看到这到题的时候,脑子里肯定想到了要让a和b翻倍至数量接近之后,再一起吃,这样的话耗费的天数最小。可以举几个例子就能发现。

假设a<b;
则要让 a * 2 *n < = b ;n取最大值
当a翻倍到最大之后,再开始吃

代码(C++)

#include<bits/stdc++.h>
using namespace std;
int main()
{int t;cin>>t;int a,b;while(t--){int res=0;cin>>a>>b;if(a>b)swap(a,b);while(true){if(a==b){res+=a;break;      }if(a*2<=b){a*=2;res++;continue;}a--;b--;res++;}cout<<res<<endl;}
}

牛客练习赛61 B 吃水果 题解相关推荐

  1. 牛客练习赛61 - B - 吃水果

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

  2. 牛客练习赛61 B 吃水果

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

  3. 牛客练习赛61-b题 吃水果

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

  4. 牛客练习赛 61(待补F-点分治?)

    A. 打怪 先求出每次打死一只怪需要掉多少血,然后就直接算出能够打死多少只. #define IO ios::sync_with_stdio(false);cin.tie();cout.tie(0) ...

  5. 牛客练习赛85 A~D题题解

    比赛链接:https://ac.nowcoder.com/acm/contest/11175 目录 A 科学家的模型 B 音乐家的曲调 C 哲学家的沉思 D 数学家的迷题 A 科学家的模型 模拟题,对 ...

  6. 牛客练习赛61 C 四个选项(并查集、DP、排列组合)难度⭐⭐⭐

    链接:https://ac.nowcoder.com/acm/contest/5026/C 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524288K 64 ...

  7. 牛客练习赛61 D 最短路变短了(最短路,反向最短路)难度⭐⭐⭐★

    最短路变短了 链接 时间限制:C/C++ 2秒,其他语言4秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format:%lld 题目描述 给定一个有向带权图,其中 ...

  8. 牛客练习赛61 E 相似的子串(二分+哈希)难度⭐⭐⭐

    相似的子串 题目链接 时间限制:C/C++ 4秒,其他语言8秒 空间限制:C/C++ 262144K,其他语言524288K 64bit IO Format:%lld 题目描述 给定一个字符串,要求取 ...

  9. 牛客练习赛61 C 四个选项 dp\搜索+组合数学

    https://ac.nowcoder.com/acm/contest/5026/C 思路一:dpdpdp,首先通过并查集处理出所有的连通块(限制条件),然后用dpi,x,y,z,wdp_{i,x,y ...

最新文章

  1. subplot subplots绘制子图
  2. js bom window对象
  3. 百万并发中间件系统的内核设计看Java并发性能优化
  4. USACO 2.3 货币系统(背包/生成函数)
  5. jquery div拖动效果示例代码
  6. qq显示下线通知什么意思_最近时不时地收到QQ下线的通知
  7. C# 课堂总结2-数据类型及转换方式
  8. 安卓软件改名器_自动点击屏幕的软件有哪些?-手机自动点击软件下载
  9. Google全球服务器根域名的IP地址
  10. jquery has 返回拥有匹配指定选择器的一个或多个元素在其内的所有元素
  11. 影子系统PowerShadow v2.6.0511中文破解版
  12. 现代计算机的工作原理是什么和什么,计算机的工作原理是什么
  13. stc单片机c语言程序头文件(stc12c5a60s2.h,stc12c5a60s2头文件在keil中没法用?
  14. JVAV SE学习总结(01)
  15. 面试字节跳动经历。。。
  16. 计算机文档添加书签,小学计算机——制作可以跳转的书签教案
  17. 那位整天嚷嚷要辞职的前台,两个月过去了她还在公司里做前台
  18. NYOJ1036 非洲小孩
  19. {渡一教育}成哥HTML课程干货笔记整--2
  20. 网络交换机接口以及级联【转自微信公众号第一监控】

热门文章

  1. Radan-专业的钣金设计加工解决方案
  2. new、new[]和new()
  3. 报价又快又准,ERP系统助力元器件贸易企业快速开单
  4. Windows 实现桌面截屏并保存为.jpg
  5. 汇川PLC模块添加和伺服配置
  6. 全国281个地级市工业用电量数据(2003-2016)
  7. 全球及中国滚球粘度计行业发展动态及投资规划分析报告2022-2028年
  8. centos7.5下RAID操作与XFS磁盘配额
  9. 力扣百题斩—— 排序篇(一)
  10. 海归首选“北广” 薪酬期望值不要太高 元芳你怎么看?