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

uva 12730(期望经典)

时间:2014-11-19 18:19:51      阅读:120      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   ar   color   os   sp   for   

选自: http://blog.csdn.net/myhelperisme/article/details/39724515

用dp(n)表示有n个位置时的期望值,那么,对于一个刚进来的人来说,他有 n 个选择,当他选择第 i 个位置时,此时的期望值是 [dp(i-k-1) + dp(n-i-k)  + 1] / n, 推导一下,就得 (2 * sum(n-k-1) ) / i + 1, (sum(i)是指 有1~n个位置时的dp总和。

#include <iostream>
#include <stdio.h>
#include <string.h>
#include <algorithm>
#include <stdlib.h>
using namespace std;
#define N 1001000

double f[N];

int main()
{
    int n,k;
    int T;
    int tt=1;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%d",&n,&k);
        for(int i=1;i<=k+1;i++)
            f[i]=1;
        double sum=f[1];
        for(int i=k+2;i<=n;i++)
        {
            f[i]=1+sum*2.0/(double)i;
            sum+=f[i-k];
        }
        printf("Case #%d: ",tt++);
        printf("%lf\n",f[n]);
    }
    return 0;
}

 

uva 12730(期望经典)

标签:style   blog   http   io   ar   color   os   sp   for   

原文地址:http://www.cnblogs.com/chenhuan001/p/4108473.html

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