zoukankan      html  css  js  c++  java
  • POJ2096 Collecting Bugs

    吐槽

    以后在POJ上交题,g++和c++都得试一遍气死偶了
    g++用%.4lf会蜜汁WA,必须用%.4f,交到c++就能过了
    看一眼discuss是个好习惯

    思路

    简单的概率dp问题,采用逆推的思路,很容易找出方程是

    dp[i][j]=dp[i+1][j]*(n-i)*j/(n*s)+dp[i][j]*i*j/(n*s)+dp[i][j+1]*i*(s-j)/(n*s)+dp[i+1][j+1]*(n-i)*(s-j)/(n*s)
    

    然后把右侧的dp[i][j]移到左边,逆推转移即可
    注意每种状态不是等概率的

    代码

    #include <algorithm>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    int n,s;
    double dp[1010][1010];
    int main(){
        scanf("%d %d",&n,&s);
        dp[n][s]=0;
        for(int i=n;i>=0;i--)
            for(int j=s;j>=0;j--)
                if(i!=n||j!=s)
                    dp[i][j]=((1.0*(dp[i+1][j]+1)*(1.0*(n-i)*j/(n*s)))+(1.0*(dp[i+1][j+1]+1)*(1.0*(n-i)*(s-j)/(n*s)))+(1.0*(dp[i][j+1]+1)*(1.0*i*(s-j)/(n*s)))+1.0*i*j/(n*s))/(1.0-1.0*i*j/(n*s));
        printf("%.4lf
    ",dp[0][0]);
        return 0;
    }
    
  • 相关阅读:
    RSA算法
    随机数相关面试题
    黑冰
    Servlet
    中国文人的弱点
    黑客与画家
    J2SE、JS及JavaWeb的若干知识
    离婚前规则
    自己写的一个智能指针类
    用_makepath和_splitpath构造路径&分解路径
  • 原文地址:https://www.cnblogs.com/dreagonm/p/10514378.html
Copyright © 2011-2022 走看看