zoukankan      html  css  js  c++  java
  • 【POJ】2096 Collecting Bugs(数学期望)

    题目

    传送门:QWQ

    分析

    数学期望

    用$ dp[i][j] $表示发现了在$ j $个子系统里面发现了$ i $个bug到$ s $个子系统里面发现了$ n $个bug需要的期望天数。

    $ dp[0][0] $就是答案。

    然后分类一下,可以转移到$ dp[i][j] $无非就是$ dp[i+1][j+1] $ $ dp[i][j+1] $ $ dp[i+1][j] $ $ dp[i][j] $

    各自分别算一下概率,比如从$ dp[i][j] $转移过来的话概率是$ frac{i}{n} imes frac{j}{s} $因为这天要刚好落在已经选择过的$ i $个bug和$ j $个子系统里。

    其他的也差不多。

       

    代码

    由于日常include <bits/stdc++.h>所以poj的ce数量超级多。。。。。

     1 // #include <bits/stdc++.h>
     2 #include <cstdio>
     3 #include <cstring>
     4 using namespace std;
     5 const int maxn=1050;
     6 double dp[maxn][maxn];
     7 int main(){
     8     double n,s; scanf("%lf%lf",&n,&s);
     9     memset(dp,0,sizeof(dp));
    10     for(int i=n;i>=0;i--)
    11         for(int j=s;j>=0;j--){
    12             if(i==n&&j==s) continue;
    13             double p1=i*j/n/s,p2=i*(s-j)/n/s,p3=(s-j)*(n-i)/n/s,p4=(n-i)*j/n/s;
    14             dp[i][j]=(1+p2*dp[i][j+1]+p3*dp[i+1][j+1]+p4*dp[i+1][j])/(1-p1);
    15         }
    16     printf("%.5f
    ",dp[0][0]);
    17     return 0;
    18 }
  • 相关阅读:
    [汇编] 基础知识
    最长回文子串(1)
    整数分解为2的幂
    位数阶乘
    change log
    SEO简介
    http请求过程
    ES6新增特性——Promise
    rem在移动端的应用
    js截取字符串操作slice、substring 、substr
  • 原文地址:https://www.cnblogs.com/noblex/p/9406589.html
Copyright © 2011-2022 走看看