BZOJ 1419 Red is good

Posted on 2017-03-15 16:27  ziliuziliu  阅读(94)  评论(0编辑  收藏  举报

期望dp。定义状态一般都是倒着来?。。。

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#define maxn 5050
#define eps 1e-7
using namespace std;
int n,m;
double dp[2][maxn];
int main()
{
    scanf("%d%d",&n,&m);
    for (int i=1;i<=n;i++)
    {
        dp[i&1][0]=i;
        for (int j=1;j<=m;j++)
            dp[i&1][j]=max(0.0,(double)i/(i+j)*(dp[(i&1)^1][j]+1)+(double)j/(i+j)*(dp[i&1][j-1]-1));
    }
    printf("%.6lf\n",dp[n&1][m]-5.0*eps);
    return 0;
}