首页 > 其他 > 详细

微软2017年预科生计划在线编程笔试第二场 Diligent Robots

时间:2017-04-08 22:34:19      阅读:385      评论:0      收藏:0      [点我收藏+]

模拟。

不断分裂,然后计算时间,取个最小值。我也不知道这做法对不对的,读完题猜了一下,抱着$WA$的心态$submit$了,然后跳出一个$AC$。

#include<bits/stdc++.h>
using namespace std;

long long n;
int q;

int main()
{
    scanf("%lld%d",&n,&q);

    long long now=1;
    long long ans=n;
    long long ci=0;

    while(1)
    {
        long long nd = n/now;
        if(n%now!=0) nd++;
        ans=min(ans,nd+q*ci);
        now=now*2;
        ci++;
        if(now>=n) break;
    }

    printf("%lld\n",ans);

    return 0;
}

 

微软2017年预科生计划在线编程笔试第二场 Diligent Robots

原文:http://www.cnblogs.com/zufezzt/p/6683153.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!