SGU 495 Kids and Prizes (概率DP入门)

来源:互联网 发布:淘宝店铺营销方案 编辑:程序博客网 时间:2024/05/16 15:21

设dp[i] 为前i个winners获得pizza的期望。

状态转移方程: dp[i+1] = dp[i]*dp[i] / N + (dp[i] + 1)*(N - dp[i]) / N 。


代码:

#include<cstdio>#include<iostream>using namespace std;const int maxm = 100005;double dp[maxm];int n,m;int main(){    scanf("%d%d",&n,&m);    dp[0] = 0;    for(int i=1;i<=m;i++){        dp[i] = dp[i-1]*dp[i-1]/n + (dp[i-1]+1)*(n-dp[i-1])/n;    }    printf("%.9f\n",dp[m]);    return 0;}


0 0