首页 > 代码库 > 微软2017年预科生计划在线编程笔试第二场 Diligent Robots

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

模拟。

不断分裂,然后计算时间,取个最小值。我也不知道这做法对不对的,读完题猜了一下,抱着$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