hdu5984 Pocky(猜数学期望公式)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_29980371/article/details/78190653

题目链接:

http://acm.split.hdu.edu.cn/showproblem.php?pid=5984

题目大意:

对于一根长度为 L 的木棍,每次等概率的取一个点将其分成两半,然后吃掉左边一半,直到剩下的长度小于 d,计算需要吃(分割)次数的数学期望

题目思路:

显然,如果 L/d 相同,则结果必定相同

根据 ln2 = 0.693147 可以推测出结果应该是 ln(L/d) + 1

再单独考虑不需要分割的情况( d>=L )

(居然还可以这样,真的是给跪了)

代码:

#include <bits/stdc++.h>
using namespace std;
int main(){
    int t;
    scanf("%d", &t);
    while (t--){
        double d, l;
        scanf("%lf%lf", &d, &l);
        if (d <= l){
            printf("0.000000\n");
            continue;
        }
        printf("%.6lf\n", 1 + log(d / l));
    }
}



阅读更多
换一批

没有更多推荐了,返回首页