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

LightOJ - 1248 Dice (III) 期望 + dp

时间:2015-06-05 10:20:03      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:

题目大意:给出一个n面的色子,问看到每个面的投掷次数期望是多少

解题思路:水题啊,竟然被卡了那么久,也是醉了,给题目所给的那个样例误导了。。。不怪那个 怪自己太弱了,还得继续训练啊。。。

设dp[i]表示扔到i个不同面的期望,那么
dp[i + 1] = i / n * dp[i + 1] + (n - i) / n * dp[i] + 1
整理得
dp[i + 1] = n / (n - i) + dp[i] + 1

#include<cstdio>
#define maxn 100010
double f[maxn];
int main() {
    int test,n, cas = 1;
    scanf("%d", &test);
    while(test--) {
        scanf("%d", &n);
        f[0] = 0;
        for(int i = 0; i < n; i++)
            f[i + 1] = f[i] + (1.0 * n / (n - i));
        printf("Case %d: %.7lf\n", cas++, f[n]);
    }
    return 0;
}

LightOJ - 1248 Dice (III) 期望 + dp

标签:

原文地址:http://blog.csdn.net/l123012013048/article/details/46369171

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