poj 2096 Collecting Bugs——期望DP
Posted narh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了poj 2096 Collecting Bugs——期望DP相关的知识,希望对你有一定的参考价值。
题目:http://poj.org/problem?id=2096
f[ i ][ j ] 表示收集了 i 个 n 的那个、 j 个 s 的那个的期望步数。
#include<cstdio> #include<cstring> #include<algorithm> #define db double using namespace std; const int N=1005; db n,s,f[N][N]; int main() { scanf("%lf%lf",&n,&s);db ml=n*s; for(int i=n;i>=0;i--) for(int j=s;j>=0;j--) { if(i==n&&j==s)continue; if(i<n)f[i][j]+=(n-i)*j/ml*f[i+1][j]; if(j<s)f[i][j]+=i*(s-j)/ml*f[i][j+1]; if(i<n&&j<s)f[i][j]+=(n-i)*(s-j)/ml*f[i+1][j+1]; f[i][j]+=1; f[i][j]*=ml/(ml-i*j); } printf("%.4f ",f[0][0]); return 0; }
以上是关于poj 2096 Collecting Bugs——期望DP的主要内容,如果未能解决你的问题,请参考以下文章