BZOJ 1419 DP 解题报告
来源:互联网 发布:mac照片怎么导入手机 编辑:程序博客网 时间:2024/06/06 03:11
1419: Red is good
Description
桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。
Input
一行输入两个数R,B,其值在0到5000之间
Output
在最优策略下平均能得到多少钱。
Sample Input
5 1
Sample Output
4.166666
HINT
输出答案时,小数点后第六位后的全部去掉,不要四舍五入.
【解题报告】
dp[i][j]表示有i张红j张黑情况下的期望收益
dp[i][j]=max(0,i/(i+j)(dp[i-1][j]+1)+j/(i+j)(dp[i][j-1]-1))
转移是和很好理解的,如果选了的期望收益<0,那么不如不选
要开滚动数组
代码如下:
/************************************************************** Problem: 1419 User: onepointo Language: C++ Result: Accepted Time:2228 ms Memory:900 kb****************************************************************/#include<cstdio>#include<cstring>#include<algorithm>using namespace std;#define N 5010int R,B,now;double dp[2][N];int main(){ scanf("%d%d",&R,&B); for(int i=0;i<=R;++i,now^=1,dp[now][0]=i) for(int j=1;j<=B;++j) dp[now][j]=max(0*1.0,1.0*i/(i+j)*(dp[now^1][j]+1)+1.0*j/(i+j)*(dp[now][j-1]-1)); long long ans=dp[R&1][B]*1000000; printf("%lf",(double)ans/1000000); return 0;}
阅读全文
0 0
- BZOJ 1419 DP 解题报告
- BZOJ 1820 DP 解题报告
- BZOJ 1566 DP 解题报告
- BZOJ 1833 数位DP 解题报告
- BZOJ 1264 树状数组+DP 解题报告
- BZOJ 1227 DP+树状数组 解题报告
- BZOJ 4152 状压DP 解题报告
- BZOJ 4318 期望DP 解题报告
- bzoj 4318 期望DP 解题报告
- BZOJ 1003 DP+最短路 解题报告
- BZOJ 1084 [SCOI 2005] DP 解题报告
- BZOJ 1907 树DP 解题报告
- BZOJ 3727 PA2014 树DP 解题报告
- bzoj 2748 音量调节 DP 解题报告
- BZOJ 2201 期望DP 解题报告
- BZOJ 2131 数据结构优化DP 解题报告
- BZOJ 3107 [cqoi 2013] DP 解题报告
- BZOJ 1801 [Ahoi 2009] DP 解题报告
- retrofit 如何post json给服务端
- 【工作笔记】微信公众号vm页面循环遍历
- Windows Server 2016远程桌面服务配置和授权激活
- java中for和foreach循环
- 多线程
- BZOJ 1419 DP 解题报告
- js中的四种调用,this、that
- C#中 Thread,Task,Async/Await,IAsyncResult 的那些事儿!
- 高维数据可视化
- RecyclerView的案例和解析
- Android组件学习笔记(连接互联网)
- tf.contrib.layers.xavier_initializer
- BZOJ3503
- C++ typedef void *HANDLE