題目描述
最近米咔買了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),
接下來連續吃兩天水果,
在第七天時吃光蘋果和香蕉,
鏈接:https://ac.nowcoder.com/acm/contest/5026/B
來源:牛客網
解題
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
int t, a, b, day;
cin >> t;
while(t--)
{
cin >> a >> b;
day = 0;
while(a != b && a != 0)
{
if(a > b)//swap 使 a 較小
a^=b^=a^=b;
if((a<<1) <= b) //a*2 <= b 則使用魔法翻倍
{
day++;
a <<= 1;
}
else //否則 都吃掉一個
{
a--;
b--;
day++;
}
}
day += a;
cout << day << endl;
}
return 0;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/75813.html
標籤:其他
上一篇:使用Python來看看動漫中的你
下一篇:資料結構的概念與三要素
