吃水果

链接: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);
    }
}
全部评论

相关推荐

05-24 14:12
门头沟学院 Java
点赞 评论 收藏
分享
06-27 15:15
长安大学 Java
哈哈哈,你是老六:这种就是培训机构骗钱的
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务