zoukankan      html  css  js  c++  java
  • 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;
    }
  • 相关阅读:
    安利博客
    python 的高阶算法之堆排序
    functools模块用途
    类型注解
    高阶函数和装饰器
    生成器

    递归函数
    匿名函数
    函数 的 返回值作用域
  • 原文地址:https://www.cnblogs.com/shinecheng/p/3580112.html
Copyright © 2011-2022 走看看