• CodeForces 148D: Bag of mice


    类型:概率DP

    题意:袋子里有黑球白球,公主和恶龙依次从里面拿。公主先。恶龙拿的时候,会额外掉出去一个(这个不参与胜负评判)。谁先拿到白球谁胜利。如果都拿完了都没人拿到,则判定恶龙胜。

    思路:如图

    代码:

    #include <cstdio>
    #include <cstdlib>
    
    double p[1004][1004];
    
    int main() {
        int w, b;
        while (scanf("%d%d", &w, &b) != EOF) {
    
            //其实可以放到外面只初始化一次
            for (int i = 0; i <= b; i++) {
                p[0][i] = 0;
            }
    
            for (int i = 1; i <= w; i++) {
                for (int j = 0; j <= b; j++) {
                    double sum = i+j+0.0;
                    p[i][j] = i/sum;
                    if (i+j >= 3 && j >= 2) {
                        double remain = 0;
                        if (j >= 3) {
                            remain += ((j-2+0.0)/(sum-2))*p[i][j-3];
                        }
                        remain += ((i+0.0)/(sum-2))*p[i-1][j-2];
                        p[i][j] += ((j+0.0)/sum) * ((j-1+0.0)/(sum-1.0)) * remain;
                    }
                }
            }
            printf("%.10lf
    ", p[w][b]);
        }
        return 0;
    }
  • 相关阅读:
    js 鸭式辨型法
    javascript performence
    js继承实现
    js深入理解构造函数和原型对象
    js 变量类型
    JS 严格模式
    鼠标滚动事件
    css3-transform
    js.map error
    canvas(一) 基本线条绘制
  • 原文地址:https://www.cnblogs.com/shinecheng/p/3580112.html
Copyright © 2020-2023  润新知