poj 2096 Collecting Bugs

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 2096 Collecting Bugs相关的知识,希望对你有一定的参考价值。

?????????printf   ??????   can   class   style   ??????   ret   nbsp   ace   

?????????

????????????????????????n???bug???s???????????????

??????????????????bug??????????????????

?????????????????????????????????????????????????????????????????????

???????????????????????????????????????????????????bug???????????????n???bug????????????????????????

?????????

??????dp????????????????????????????????????????????????

???dp[i][j]???????????????i???bug?????????j????????????????????????????????????

??????dp[n][s] = 0???????????????????????????

????????????????????????????????????????????????????????????????????????????????????

????????????i???bug????????????j?????????????????????????????????

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

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

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

dp[i][j]??????????????????i???bug?????????j????????????????????????i * j / (s*n)???

?????????????????????????????????????????????

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

?????????????????????

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

??????dp????????????????????????dp[0][0]???

?????????

 1 #include <stdio.h>
 2 #include <string.h>
 3 #include <algorithm>
 4 using namespace std;
 5 const int N = 1e3 + 5;
 6 double dp[N][N];
 7 int main()
 8 {
 9     int n,s;
10     scanf("%d%d",&n,&s);
11     dp[n][s] = 0;
12     for (int i = n;i >= 0;i--)
13     {
14         for (int j = s;j >= 0;j--)
15         {
16             if (i == n && j == s) continue;
17             double &ans = dp[i][j];
18             ans = (dp[i+1][j]*(n-i)*j+dp[i][j+1]*i*(s-j)+dp[i+1][j+1]*(n-i)*(s-j)+n*s) / (n*s-i*j);
19         }
20     }
21     printf("%.4f\n",dp[0][0]);
22     return 0;
23 }

 

以上是关于poj 2096 Collecting Bugs的主要内容,如果未能解决你的问题,请参考以下文章

[POJ2096]Collecting Bugs

poj 2096 Collecting Bugs

POJ 2096 Collecting Bugs

POJ-2096-Collecting Bugs(概率DP)

POJ2096 Collecting Bugs

poj 2096 Collecting Bugs