链接:https://ac.nowcoder.com/acm/contest/5026/B
贪心:
如果x==y,直接输出x,
假设x < y, x不断乘以2,直到x > y/2 && x<=y,可以想象,如果x,y同时减1,肯定会到y是x两倍的情况,这时候x*2即可,这个过程中y的贡献就是y,我们看一下为了多做了多少,ceil(log2(y/x))
int t, n, m;
int main()
{
t = read();
while(t--)
{
n = read(), m = read();
int x = min(n, m), y = max(n, m);
if(x == y) print(x);
else print(ceil(log2(1.0*y/x)) + y);
}
}
京公网安备 11010502036488号