POJ - 2096 Collecting Bugs(概率dp)

来源:互联网 发布:c# 初始化数组 编辑:程序博客网 时间:2024/05/24 00:29

被坑的是在POJ选G++的double型要用%f。编译器的问题。。。。


递推式

d[ i ][ j ] = ( d[ i ][ j ] * i * j + d[ i+1 ][ j ] * ( n - i ) * j + d[ i ][ j + 1 ] * i * ( s - j ) + d[ i + 1 ][ j + 1 ] * ( n - i ) * ( s - j) )    /  (  m  * n ) + 1;


#include <iostream>#include <cstdio>#include <cstdlib>#include <cstring>#include <string>using namespace std;double d[1111][1111];int n, m;int main(){    while(~scanf("%d%d", &n, &m))    {        d[n][m]=0;        for(int i=n; i>=0; i--)            for(int j=m; j>=0; j--)            {                if(i==n && j==m)                    continue ;                d[i][j]=((n-i)*j*d[i+1][j]+i*(m-j)*d[i][j+1]+(n-i)*(m-j)*d[i+1][j+1]+m*n)/(1.0*m*n-i*j);            }        printf("%.4lf\n", d[0][0]);    }    return 0;}


0 0
原创粉丝点击