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

hdu 4823 Energy Conversion(数学)

时间:2014-05-22 22:34:41      阅读:308      评论:0      收藏:0      [点我收藏+]

标签:style   class   c   code   tar   http   

题目链接:hdu 4823 Energy Conversion

题目大意:中文题,不解释。

解题思路:首先判断一下m是否已经大于n了,如果大于那么就是0,假设中间变换的各个值为ai,那么bi=ai+c,bi数组为等比数组(可推),所以就有了cnt=log((n+c)a)log(double(k)),结果为浮点数,需要向上取整。

#include <cstdio>
#include <cstring>
#include <cmath>

int main () {
    int cas;
    double n, m, v, k;
    scanf("%d", &cas);

    while (cas--) {
        scanf("%lf%lf%lf%lf", &n, &m, &v, &k);

        if (m >= n) {
            printf("0\n");
            continue;
        }

        double tmp = (m-v)*k;
        if (tmp <= m) {
            printf("-1\n");
        } else {
            double c = -(v * k) / (k - 1);
            double a = m + c;
            double cnt = log((n+c) / a) / log(double(k));
            printf("%lld\n", (long long)ceil(cnt));
        }
    }
    return 0;
}

hdu 4823 Energy Conversion(数学),布布扣,bubuko.com

hdu 4823 Energy Conversion(数学)

标签:style   class   c   code   tar   http   

原文地址:http://blog.csdn.net/keshuai19940722/article/details/26516291

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