BZOJ1419: Red is good

1419: Red is good

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

Description

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

Input

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

Output

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

Sample Input

5 1

Sample Output

4.166666

HINT

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

Source

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

#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
#include<cmath>
using namespace std;
#define maxn 5010
#define mod 1000000

int 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;
}

时间: 2024-10-22 04:31:08

BZOJ1419: Red is good的相关文章

[BZOJ1419] Red is good(期望DP)

传送门 逆推 只不过顺序还是顺着的,思想是逆着的 f[i][j]表示还剩下i张红牌,j张黑牌的期望值 那么边界是 f[i][0]=i,因为只剩i张红牌 f[0][j]=0,只剩黑牌,显然直接停止最优 f[i][j] = max(0,i/(i+j)*f[i-1][j]+j/(i+j)*f[i][j-1]) 空间不够,开两层即可 #include <cstdio> #include <iostream> #define N 5001 int n, m; double f[2][N];

【BZOJ-1419】Red is good 概率期望DP

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 在最优策略下平均能得到多少钱

【BZOJ1419】 Red is good [期望DP]

Red is good Time Limit: 10 Sec  Memory Limit: 64 MB[Submit][Status][Discuss] Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. Input 一行输入两个数R,B. Output 在最优策略下平均能得到多少钱.输出答案时,小数点后第六位后的全部去掉,不要四舍五入. Sample Input

【bzoj1419】Red is good

问题描述 桌面上初始有NN张红牌,MM张黑牌,随机打乱顺序.之后我们一张一张地去翻牌,翻到红牌得到11幻想乡币,黑牌则付出11幻想乡币.可以随时停止翻牌.在最优策略下,我们得到的幻想乡币的数量期望是多少. 输入格式 一行两个非负整数,表示NN和MM. 输出格式 一个数表示答案. 样例输入 1 1 样例输出 0.5 提示 如果第一张是红牌,那直接停止游戏.收益为1,这种情况的概率是1/2.如果第一张是黑牌,继续翻下去,第二张一定是红牌.收益为0,这种情况的概率是1/2.与答案的差值≤10−5即视为

Linux red hat 安装ansible

今日对Linux 系统是Red Hat Enterprise Linux Server release 6.5 (Santiago)对ansible进行安装. 由于系统的源为yum源,所以使用yum install ansible 进行安装,但是报错.如图.(这个错误是yum源没有注册到red hat 系统). yum源不能安装,所以换了一个思路.使用pip安装.pip是依赖python安装的. 1.检查Python版本 Python -v 检查出来为Python 2.6.6 2.检查pip 版

red hat7 系统可以ping通ip地址但是不能ping通域名

在red hat7中ifconfig后出现这样的情况,ens33是物理网卡,与eth0一样只是不同的名字.但是只能ping通ip地址不能ping通域名. 解决方法: 在文件 /etc/resolv.conf文件下更改nameserver的值 加上 nameserver 8.8.8.8  域名解析服务  nameserver 8.8.4.4为备用的 在文件 etc/sysconfig/network-scripts下修改 ifcfg-eth0 或者 ifcfg-ens33文件,设置静态ip地址,

red halt 7.3使用Cent-os7 yum 源

困惑:在使用red halt学习时,未注册的用户,有些软件是无法通过yum网络源和本地光盘下载,此时使用Centos的yum源就显得很方便,因为红帽收购了Centos 所以软件的兼容性基本不会有什么问题 1.检查是否安装yum包 查看RHEL是否安装了yum,若是安装了,那么又有哪些yum包: [[email protected] yum.repos.d]# rpm -qa |grep yumyum-3.4.3-118.el7.noarchyum-utils-1.1.31-24.el7.noar

POJ1979 Red and Black

问题链接:POJ1979 Red and Black. 题意简述:输入正整数w和h,w为列数,h为行数.输入h×w矩阵 (1 <= h <= 20; 1 <= w <= w),其中'.'代表可到达,'#'代表不可到达,'@'代表开始点.问从'@'开始可以到达最多多少个点. 问题分析:本题可以使用深度优先搜索求解,用广度优先搜索也可以求解,差别不大.需要注意的是'@'也算一个可以到达的点. 程序说明如下: 1.方向数组 使用方向数组后,各个方向的试探的程序就会变得简洁了,用循环处理即

Red style books store OpenCart 主题模板 ABC-0117

Red style books store OpenCart 主题模板 ABC-0117 RED STYLE BOOKS STORE OPENCART 主题模板 ABC-0117 Designed with luxurious colorsSuitable for shop selling: Books , templates, Card, picture, Art, Photography..Designed by CSS, HTMLSupports multiple languages, m