BZOJ 1419: Red is good(期望DP)

题目描述

权限传送门


题解

比较水的期望DP,但也让我悟到了一点关于期望的东西。

题目描述得不可描述,看起来逼格很高。但平均就是期望,关键是最优策略这点。

根据我幼稚的理解,期望是均值没错,但期望之所以叫期望是因为它在预知未来,当前这个状态期望的得分就是作出决策后未来能得到分数的均值。

所以或许这就是期望DP的状态要倒过来推的原因吧。

考虑f[i][j]为剩下i张红牌j张黑牌的在最优策略下的期望。根据我脚推的式子,大概就是:

f[i][j] = max(0.0, p*(f[i-1][j]+1.0) + (1.0-p)*(f[i][j-1]-1.0));

(我居然神奇地想到了取max)

其中p=i/(i+j),其中与0.0取max就是避免那种作出决策却拿到负数的情况,此时应该叫停。于是这样就保证了最优决策(即我们不拿负数去贡献一个状态)。

很明显,f[0][j]=0,f[i][0]=i,注意空间只有64M,滚动第一维即可。至于答案去尾,请参见程序。


短小的代码

#include 

你可能感兴趣的:(BZOJ,期望,&,概率,DP,&,记忆化搜索)