题目链接:Click here

Solution:

考虑设\(f(i,j)\)表示当前还有\(i\)张红牌,\(j\)张黑牌时的期望收益

易得状态转移方程:\(f(i,j)=\frac{i}{i+j}(f(i-1,j)+1)+\frac{j}{i+j}(f(i,j-1)-1)\)

事实上,由于采取最优策略,当此时期望为负数时,我们肯定是不取的,所以式子是这样的:

\[f(i,j)=max(0,\frac{i}{i+j}(f(i-1,j)+1)+\frac{j}{i+j}(f(i,j-1)-1))
\]

题目只给了64MB的空间,所以我们需要用滚动数组来优化空间

最后再对输出进行一些处理就可以了

Code:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int v=1e6;
int n,m,u=1;
double f[2][5001];
int read(){
int x=0,f=1;char ch=getchar();
while(!isdigit(ch)){if(ch=='-')f=-1;ch=getchar();}
while(isdigit(ch)){x=x*10+ch-48;ch=getchar();}
return x*f;
}
int main(){
n=read(),m=read();
for(int i=0;i<=n;i++){
u^=1;f[u][0]=i;
for(int j=1;j<=m;j++)
f[u][j]=max(0.0,1.0*i/(i+j)*(f[u^1][j]+1)+1.0*j/(i+j)*(f[u][j-1]-1));
}
printf("%.6lf",1.0*(ll){f[u][m]*v}/v);
return 0;
}

最新文章

  1. NYOJ题目124中位数
  2. webDriver中的alert
  3. HQL查询及Hibernate对c3p0连接池的支持
  4. c#自定义进度条
  5. js学习对象创建
  6. HTTP/1.1 Range和Content-Range
  7. 关于php正则表达式模式修饰符
  8. Linux--------------安装mysql(2)
  9. 使用Thumbnails对一个文件夹下的所有图片进行压缩处理
  10. [React] React Router: Redirect
  11. ocp11g培训内部教材_052课堂笔记(042)_体系架构
  12. 学习maven的各种问题
  13. 201521123087 《Java程序设计》第3周学习总结
  14. 《ActiveMQ in Action》【PDF】下载
  15. 深入理解.net - 4.你必须知道的String
  16. Linux之用户和权限
  17. js数字串传参时变科学计数法
  18. ELK对Tomcat日志双管齐下-告警触发/Kibana日志展示
  19. Win32文件系统编程
  20. selenium + firefox驱动版本对应。

热门文章

  1. xmake从入门到精通9:交叉编译详解
  2. Android基础内容提供者ContentProvider的使用详解(转)
  3. springboot基于方法级别注解事务的多数据源切换问题
  4. hue数据导出
  5. Hbase的几个关键问题(转自log.csdn.net/javastart/article/details/43772575)
  6. C++中的三种继承方式
  7. 单节点FastDFS安装
  8. mysql整理-常用sql语句
  9. cs244a-Introduction to Computer Networking-Unit2
  10. 08、beta-actin和GAPDH的3&#39;/5&#39;比值