LightOJ1248-Dice (III)

来源:互联网 发布:mac删除下载的软件 编辑:程序博客网 时间:2024/05/22 17:30

 Dice (III)

 


题意:给出一个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 <iostream>#include <cstdio>#include <string>#include <cstring>#include <algorithm>#include <queue>#include <cmath>#include <vector>#include <set>#include <bitset>#include <stack>#include <map>#include <climits>#include <functional>using namespace std;#define LL long longconst int INF=0x3f3f3f3f;const double eps=1e-8;double dp[100009];int main(){    int t,cas=0;    scanf("%d",&t);    while(t--)    {        int n;        scanf("%d", &n);        dp[0]=0;        for(int i=1;i<=n;i++)            dp[i]=dp[i-1]+1.0*n/i;        printf("Case %d: %.8f\n",++cas,dp[n]);    }    return 0;}

0 0