• Codeforces Round #105 (Div. 2) D题


    概率dp,dp[i][j]为i个白兔和j个黑兔的时候,公主胜利的概率,公主第一次拿就拿到了白兔的概率为i/(i+j)
    公主第一次拿到了黑兔,龙拿到了黑兔,跳出了一个黑兔,就到了dp[i][j-3],概率为:1.0 * j / (j+i) (j-1)/(i+j-1)(j-2)/(i+j-2)。
    公主第一次拿到了黑兔,龙拿到了黑兔,跳出了一个白兔,就到了dp[i-1][j-2],概率为:1.0 * j / (i+j) (j-1)/(i+j-1)i/(i+j-2)。

    double dp[2000][2000];
    
    int main() {
        int a,b;
        scanf("%d%d",&a,&b);
        for(int i = 1; i <= a; i++) dp[i][0] = 1;
        for(int i = 1; i <= a; i++) {
            for(int j = 1; j <= b; j++) {
                dp[i][j] = 1.0 * i/(i+j);
                if(j >= 2) dp[i][j] += 1.0 * j / (i+j) *(j-1)/(i+j-1)*i/(i+j-2)*dp[i-1][j-2];
                if(j >= 3) dp[i][j] += 1.0 * j / (j+i) *(j-1)/(i+j-1)*(j-2)/(i+j-2)*dp[i][j-3];
            }
        }
        printf("%.9lf",dp[a][b]);
        return 0;
    }
    
  • 相关阅读:
    RPA-UiPath视频教程2
    skywalking链路监控
    RPA-UiPath视频教程1
    Redis基础与性能调优
    tomcat调优
    DDos、CC攻击与防御
    UiPath官方视频Level2
    UiPath直播课程
    UiPath手把手教程
    【0】python核心编程,第二章
  • 原文地址:https://www.cnblogs.com/ASLHZXY/p/12117259.html
Copyright © 2020-2023  润新知