hihocoder 1498 签到

Posted 浅忆

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hihocoder 1498 签到相关的知识,希望对你有一定的参考价值。

There are N jobs to be finished. It takes a robot 1 hour to finish one job.

At the beginning you have only one robot. Luckily a robot may build more robots identical to itself. It takes a robot Q hours to build another robot.  

So what is the minimum number of hours to finish N jobs?

Note two or more robots working on the same job or building the same robot won‘t accelerate the progress.

 
Input

The first line contains 2 integers, N and Q.  

For 70% of the data, 1 <= N <= 1000000  

For 100% of the data, 1 <= N <= 1000000000000, 1 <= Q <= 1000

 
Output

The minimum number of hours.

 

Sample Input

10 1

 

Sample Output

5


 1 #include <iostream>
 2 
 3 using namespace std;
 4 
 5 int main()
 6 {   long long n,m,t,k,ans;
 7      cin>>n>>m;
 8      t=2,k=1;
 9      ans=n;
10      while(t<n){
11         ans=min(ans,k*m+n/t+(n%t==0?0:1));
12         t=t*2;
13         k++;
14      }
15      cout<<ans<<endl;
16     return 0;
17 }

 

以上是关于hihocoder 1498 签到的主要内容,如果未能解决你的问题,请参考以下文章

hihocoder-1498-Diligent Robots

hihoCoder1498-Diligent Robots

hihocoder1498 Diligent Robots

2021牛客暑期多校训练营10,签到题FH

hihocoder第233周

JZOJ1498抓猫