2018.08.31 bzoj1419 Red is good(期望dp)
描述
桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付 出1美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。
输入
一行输入两个数R,B,其值在0到5000之间
输出
在最优策略下平均能得到多少钱。
样例输入
5 1
样例输出
4.166666
提示
输出答案时,小数点后第六位后的全部去掉,不要四舍五入.
标签
bzoj1419
期望简单题。
令f[i][j]" role="presentation" style="position: relative;">f[i][j]f[i][j]表示还剩了i张红牌和j张黑牌时最优期望得到钱数。
那么发现:
f[i][j]=(f[i−1][j]+1)∗i/(i+j)+(f[i][j−1]+1)∗j/(i+j)" role="presentation" style="position: relative;">f[i][j]=(f[i−1][j]+1)∗i/(i+j)+(f[i][j−1]+1)∗j/(i+j)f[i][j]=(f[i−1][j]+1)∗i/(i+j)+(f[i][j−1]+1)∗j/(i+j)
但是题目并不允许我们开二维数组。
然而这个状态转移方程只与上一层有关。
因此需要滚动数组优化空间。
我们用f[tmp^1][j]记录上一层状态,f[tmp][i]记录当前层状态。
则有:
f[tmp][j]=(f[tmp" role="presentation" style="position: relative;">f[tmp][j]=(f[tmpf[tmp][j]=(f[tmp^1][j]+1)∗i/(i+j)+(f[i][j−1]+1)∗j/(i+j)" role="presentation" style="position: relative;">][j]+1)∗i/(i+j)+(f[i][j−1]+1)∗j/(i+j)][j]+1)∗i/(i+j)+(f[i][j−1]+1)∗j/(i+j)。
还有就是注意答案的处理。
代码:
#include<bits/stdc++.h>
#define N 5005
using namespace std;
int r,b,tmp;
double f[2][N];
int main(){
cin>>r>>b,tmp=1;
for(int i=1;i<=r;++i){
f[tmp][0]=i;
for(int j=1;j<=b;++j)f[tmp][j]=max(0.0,1.0*i/(i+j)*(f[tmp^1][j]+1)+1.0*j/(i+j)*(f[tmp][j-1]-1));
tmp^=1;
}
printf("%0.6lf",floor(f[tmp^1][b]*1e6)*1.0/1e6);
return 0;
}
2018.08.31 bzoj1419 Red is good(期望dp)的更多相关文章
- 2018.08.31 bzoj1426 收集邮票(期望dp)
描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且 买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮票,所以 ...
- 【BZOJ1419】 Red is good [期望DP]
Red is good Time Limit: 10 Sec Memory Limit: 64 MB[Submit][Status][Discuss] Description 桌面上有R张红牌和B张 ...
- 2018.09.27 codeforces1045D. Interstellar battle(期望dp)
传送门 一道有意思的期望dp. 题意是给出一棵树,每个点最开始都有一个gg的概率,有m次修改,每次修改会把某个点gg的概率更换掉,让你求出每次修改之后整个树被分成的连通块的数量的期望(gg掉的点不算) ...
- 2018.09.09 UVa10529 - Dumb Bones(期望dp)
传送门 期望dp好题. f[i]表示摆放i个的最小花费,于是f[i]可以从f[j]与f[i-j+1]转移过来了. 代码: #include<bits/stdc++.h> #define N ...
- 2018.09.01 hdu4405 Aeroplane chess (期望dp)
传送门 期望dp简单题啊. 不过感觉题意不太对. 手过了一遍样例发现如果有捷径必须走. 这样的话就简单了啊. 设f[i]" role="presentation" sty ...
- 【BZOJ1419】Red is good 期望DP
题目大意 桌面上有\(R\)张红牌和\(B\)张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到\(1\)美元,黑牌则付出\(1\)美元.可以随时停止翻牌,在最优策略下平均能得到多少钱 ...
- 2018.08.31 19:41 自学go语言
有的人是从最基础的开始学,而我却是从最简单开始学,学着调试,学着编程,其实我也是编程小白,好多的不懂,我不明白很多都可以用云完成了,为什么还要继续自己编程,不明白,但是有需求吧,有需求是件好事情,说明 ...
- 2018.08.31 16:26 调试 Swift 和 Pycharm 与 github 之间的链接
花了一段时间调试Swift和Pycharm的链接,网上查了一下有关信息,再加上自己的摸索,一会就掌握了.
- 2018.08.31 bzoj3566: [SHOI2014]概率充电器(概率dp+容斥原理)
传送门 概率dp好题啊. 用f[i]" role="presentation" style="position: relative;">f[i] ...
随机推荐
- springsource-tool-suite插件各个历史版本
转自:https://blog.csdn.net/zhen_6137/article/details/79384798 目前spring官网(http://spring.io/tools/sts/al ...
- 使用.htaccess文件
禁止对无索引文件的目录进行文件列表展示 默认情况下,当我们访问网站的某个无索引文件(如index.html,index.htm或 index.php)目录时,服务器会显示该目录的文件和子目录列表,这是 ...
- UI5-文档-2.2-使用SAP Web IDE开发应用程序
SAP Web IDE是一种基于Web的开发环境,它是为使用最新的创新开发SAPUI5复杂的应用程序.开发和扩展SAP Fiori应用程序.开发移动混合应用程序以及使用插件和模板扩展SAP Web I ...
- javascript知识点积累
8年javascript知识点积累 08年毕业就开始接触javascript,当时是做asp.net发现很多功能用asp.net控件解决不了,比如checkbox单选,全选问题,自动计算总价问题, ...
- oracle惯用缩写的含义
$ORACLE_HOME/bin下的utilities解释Binary First Available Description----------------- ...
- linux numastat的理解
numa的统计数据及理解如下, [root@localhost kernel]# numastat node0 node1numa_hit ...
- Java Magic. Part 1: java.net.URL
Java Magic. Part 1: java.net.URL @(Base)[JDK, url, magic, 黑魔法] 英文原文 转载请写明:原文地址 系列文章: -Java Magic. Pa ...
- delphi常用函数和方法
uses ShellApi, ActiveX, ComObj, ShlObj; function HasText(Text: string; const Values: array of strin ...
- intellij idea 添加模板语句
1.说明 在intellij idea 中有很多模板语句可有使用,比如:输入sout,就可以直接生成 System.out.println();代码, 输入psvm,就可以直接生成main方法,类似这 ...
- 大型运输行业实战_day03_2_使用ajax将请求页面与请求数据分离
1.引入jquery 1.添加jquery包 2.在要使用jquery的页面中引入jquery 引入jquery后必须检查是否引入正确,这里值得注意的是 springMVC默认情况先会拦截 js文件, ...