博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
BZOJ1419: Red is good
阅读量:5154 次
发布时间:2019-06-13

本文共 971 字,大约阅读时间需要 3 分钟。

1419: Red is good

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 639  Solved: 247
[][][]

Description

桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元。可以随时停止翻牌,在最优策略下平均能得到多少钱。

Input

一行输入两个数R,B,其值在0到5000之间

Output

在最优策略下平均能得到多少钱。

Sample Input

5 1

Sample Output

4.166666

HINT

输出答案时,小数点后第六位后的全部去掉,不要四舍五入.

Source

题解:sb出题人,把内存开那么小,强行一波动态数组!

#include
#include
#include
#include
#include
using namespace std;#define maxn 5010#define mod 1000000int n,m,ans;double f[2][maxn];int main(){ scanf("%d%d",&n,&m); int now=0; for (int i=1;i<=n;i++,now=1-now){ f[now][0]=i; for (int j=1;j<=m;j++) f[now][j]=max(0.0,(f[now^1][j]+1)*i/(i+j)+(f[now][j-1]-1)*j/(i+j)); } long long ans=floor(f[now^1][m]*mod); printf("%lld.%06lld",ans/mod,ans%mod); return 0;}
View Code

 

转载于:https://www.cnblogs.com/HQHQ/p/5793804.html

你可能感兴趣的文章
array_reduce() 与 array_map()
查看>>
SASS实现代码的重用:混合器Mixin、继承
查看>>
《windows核心编程系列》三谈谈内核对象及句柄的本质
查看>>
Linux下安装maven
查看>>
转:【Java并发编程】之十五:并发编程中实现内存可见的两种方法比较:加锁和volatile变量...
查看>>
linux nohup【转】
查看>>
SQL语句优化
查看>>
校验银行卡号是否符合Luhn算法及生成符合Luhn算法的银行卡号
查看>>
MFC 双缓冲加载背景
查看>>
记录自己最近的学习状态
查看>>
hdu 1142 最短路+记忆化深搜---好题
查看>>
day 018 面向对象--约束和异常处理
查看>>
Day3_基本数据类型
查看>>
Fire Maze(广度优先搜索)
查看>>
Linux Kernel API
查看>>
oracle学习
查看>>
【C语言项目】贪吃蛇游戏(下)
查看>>
DevExpress第三方控件汉化的全部代码和使用方法
查看>>
二分查找算法(C#实现)
查看>>
vue项目中开启Eslint碰到的一些问题及其规范
查看>>