HDU-6558 The Moon (期望DP)

题目:
  • 一个游戏,每一局获胜概率为p%,获胜后获奖概率为q,q初值为2%,如果获胜没获奖q+2%,如果没有获胜q+1.5%。问输入p下获胜且获奖的期望。
  • 我们能知道的初始状态是q=100%时的期望,此时就是一个几何分布,期望为1/p。dp[i]表示q=i时的期望。转移方程为(dp[i]=p*(1-q)*dp[min(200,i+4)]+(1-p)*dp[min(200,i+3)]+1;)。每一项等于获胜没获奖项和没获奖项和当前项。
int T;
double p, q;
double dp[N];

int main()
{
    scanf("%d",&T);
    for(int Case = 1; Case <= T; ++ Case){
        for(int i = 1; i <= 200; ++ i) dp[i] = 0.0;
        scanf("%lf",&p);
        p /= 100.0;
        dp[200] = 1.0 / p;
        for(int i = 199; i >= 4; -- i ){
            q = i / 200.0;
            dp[i] = p * (1 - q) * dp[min(200, i + 4)] + (1 - p) * dp[min(200, i + 3)] + 1;
        }
        printf("Case %d: %.10lf
",Case,dp[4]);
    }
    return 0;
}
原文地址:https://www.cnblogs.com/A-sc/p/12874359.html