hdu3853(简单概率dp)

来源:互联网 发布:科目一挂机软件 编辑:程序博客网 时间:2024/05/16 20:36

说是简单做题来还是不顺手,第一道概率dp

期望推导出来就做出来了。

#include<iostream>#include<math.h>#include<stdio.h>#include<algorithm>#include<string.h>using namespace std;//typedef __int64 lld;#define oo 0x3f3f3f3f#define Mod 1000000007#define maxn 1003double L[maxn][maxn],S[maxn][maxn],D[maxn][maxn];double dp[maxn][maxn];int main(){    int n,m;    while(scanf("%d %d",&n,&m)!=EOF)    {        for(int i=1;i<=n;i++)            for(int j=1;j<=m;j++)                scanf("%lf %lf %lf",&S[i][j],&L[i][j],&D[i][j]);        memset(dp,0,sizeof dp);        for(int i=n;i>=1;i--)        {            for(int j=m;j>=1;j--)            {                if(i==n&&j==m)continue;                if(S[i][j]==1.0)continue;                dp[i][j]=(dp[i][j+1]*L[i][j]+dp[i+1][j]*D[i][j]+2)/(1.0-S[i][j]);            }        }        printf("%.3lf\n",dp[1][1]);    }    return 0;}



























0 0