BZOJ 1419: Red is good(期望DP)

这篇博客介绍了BZOJ 1419题目的解题思路,重点讨论了一种名为'期望DP'的算法。博主通过题目描述的解析,阐述了期望在决策过程中的作用,指出期望是预知未来得分的均值,并提供了状态转移方程。代码实现简洁,空间优化技巧值得关注。
摘要由CSDN通过智能技术生成

题目描述

权限传送门


题解

比较水的期望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 <bits/stdc++.h&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值