码迷,mamicode.com
首页 > 其他好文 > 详细

hihocoder-1498-Diligent Robots

时间:2019-06-14 22:07:56      阅读:137      评论:0      收藏:0      [点我收藏+]

标签:rate   one   beginning   想法   使用   The   nbsp   while   ble   

hihocoder-1498-Diligent Robots

 

#1498 : Diligent Robots

时间限制:10000ms
单点时限:1000ms
内存限制:256MB

描述

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.

输入

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

输出

The minimum number of hours.

样例输入
10 1
样例输出
5

 

 

 

题解:

  使用贪心算法的思想。

  样本复制之后需要去生产才有效,所以机器人必定是先复制完。

  还有一个想法是是否需要一边复制一边生产,这个想法是否定的,假如n生产m复制,得到的是 m + (q+1)*n.  如果是一起复制,则得到的是 (m + n)*q , 大于前者。

 

 

#include <cstdio> 
#include <cstdlib> 

int main()
{
    int q; 
    long long cnt, n, k; 
    while(scanf("%lld %d", &n, &q) != EOF)
    {
        cnt = 0; 
        k = 1; 
        while(2*q*k < n)
        {
            k *= 2; 
            cnt += q; 
        }
        cnt += n / k; 
        if(n%k != 0)
        {
            cnt += 1; 
        }
        printf("%lld\n", cnt );
    }
    return 0; 
}

  

 

hihocoder-1498-Diligent Robots

标签:rate   one   beginning   想法   使用   The   nbsp   while   ble   

原文地址:https://www.cnblogs.com/zhang-yd/p/11025375.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!