【BZOJ-1419】Red is good 概率期望DP
2016-09-24 09:25
387 查看
1419: Red is good
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 660 Solved: 257
[Submit][Status][Discuss]
Description
桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。Input
一行输入两个数R,B,其值在0到5000之间Output
在最优策略下平均能得到多少钱。Sample Input
5 1Sample Output
4.166666HINT
输出答案时,小数点后第六位后的全部去掉,不要四舍五入.Source
Solution
概率期望DP$f[i][j]$表示选$i$张红和$j$张黑的答案
转移就是期望*概率
$f[i][j]=max(0,\frac{i}{i+j}*(f[i-1][j]+1)+\frac{j}{i+j}*(f[i][j-1]-1))$
卡内存需要滚动数组
Code
#include<iostream> #include<cstdio> #include<cstring> #include<cmath> #include<algorithm> using namespace std; int R,B,now; double f[2][5001]; int main() { scanf("%d%d",&R,&B); for (int i=0; i<=R; i++,now^=1,f[now][0]=i) for (int j=1; j<=B; j++) f[now][j]=max(0*1.0,1.0*i/(i+j)*(f[now^1][j]+1)+1.0*j/(i+j)*(f[now][j-1]-1)); long long ans=f[R&1][B]*1000000; printf("%lf",(double)ans/1000000); return 0; }
相关文章推荐
- shipyard 深入学习及源码分析
- IIS8部署Django项目
- Flash容量设置错误导致的No Algorithm found for: 08020000H – 08024FD3H
- Google今日公布VR SDK 1.0 bete测试版
- 一个简单的 go 语言 hello world.
- MP3Stego的打开方式与使用方法
- 国内如何访问Goole的问题
- django表单验证和跨站伪造csrf
- django的cookie和session以及内置信号、缓存
- mogoose model注意的问题
- C/Golang中的值传递和指针传递
- go语言学习框架
- golang的hijack篡取劫持
- django1.10的很多操作跟现在出版的书里的命令都不一样了
- 如何用googletest写单元测试
- django文件上传完整示例
- django 编码错误
- Django Restframework 实践(二)
- 【Google官方译文】Styles and Themes
- golang之匿名函数