1419: Red is good

1419: Red is good

Time Limit: 10 Sec  Memory Limit: 64 MB
Submit: 773  Solved: 320
[Submit][Status][Discuss]

Description

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

Input

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

Output

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

Sample Input

5 1

Sample Output

4.166666

HINT

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

Source

概率期望DP
  f[i][j]表示有i张红j张黑情况下的期望收益
  f[i][j]=max(0,i/(i+j)*(f[i-1][j]+1)+j/(i+j)*(f[i][j-1]-1))
  转移是和很好理解的,如果选了的期望收益<0,那么不如不选
ps:
1、滚动数组压内存
2、去尾,不是四舍五入

#include<cstdio>
#include<cstring>
#include<iostream>
using namespace std;
const int N=5005;
int n,m;
double f[2][N];
int main(){
    scanf("%d%d",&n,&m);
    int now=0;
    for(int i=1;i<=n;i++){
        now^=1;
        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));
        }
    }
    char ans[35];
    sprintf(ans,"%.7lf",f[now][m]);
    int len=strlen(ans);ans[len-1]=0;
    puts(ans);
    return 0;
}
时间: 2024-08-06 11:37:33

1419: Red is good的相关文章

【BZOJ 1419】1419: Red is good (概率DP)

1419: Red is good Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 807  Solved: 343 Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. Input 一行输入两个数R,B,其值在0到5000之间 Output 在最优策略下平均能得到多少钱. Sample Input 5 1 Sample

bzoj 1419 Red is good - 动态规划 - 概率与期望

Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. Input 一行输入两个数R,B,其值在0到5000之间 Output 在最优策略下平均能得到多少钱. Sample Input 5 1 Sample Output 4.166666 HINT 输出答案时,小数点后第六位后的全部去掉,不要四舍五入. (题目太简洁,不需要大意) 这道题和poj的Collecting

BZOJ 1419 Red is good 期望DP

题目大意:有R张红牌和B张黑牌打乱扣在桌子上,一张一张翻,可以随时停止翻牌,翻到红牌收益+1,翻到黑牌收益-1,求最优策略下的最大期望收益 OTZ wfycyx= =  http://wyfcyx.is-programmer.com/posts/74629.html #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define M 5050 usin

【BZOJ】1419 Red is good

[算法]期望DP [题解]其实把状态表示出来就是很简单的期望DP. f[i][j]表示i张红牌,j张黑牌的期望. i=0时,f[0][j]=0. j=0时,f[i][0]=i. f[i][j]=max(0,i/(i+j)*(f[i-1][j]+1)+j/(i+j)*(f[i][j-1]-1)). 直接使用期望定义式E(X)=Σpi*xi 不四舍五入就是在后一位-5. 空间限制必须用递推+滚动数组. #include<cstdio> #include<cstring> #includ

【BZOJ】【1419】Red is good

数学期望/期望DP 还是戳<浅析竞赛中一类数学期望问题的解决方法>这篇论文…… $$ f[i][j]= \begin{cases} 0 &, &i==0 \\ f[i-1][j]+1 &, &i>0,j=0 \\ max\{0,(f[i-1][j]+1)*\frac{i}{i+j} + (f[i][j-1]-1)* \frac{j}{i+j}\} &, &i>0,j>0 \end{cases} $$ 然而TLE了一发……因为空间

BZOJ1419: Red is good

1419: Red is good Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 639  Solved: 247[Submit][Status][Discuss] Description 桌面上有R张红牌和B张黑牌,随机打乱顺序后放在桌面上,开始一张一张地翻牌,翻到红牌得到1美元,黑牌则付出1美元.可以随时停止翻牌,在最优策略下平均能得到多少钱. Input 一行输入两个数R,B,其值在0到5000之间 Output 在最优策略下平均能得到多少钱

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

计数类问题专题

主要是前两天被uoj的毛爷爷的题虐的不轻,心里很不爽啊,必须努力了,, 计数类问题分为:1.组合数学及数论计数 2.dp:状态压缩dp,插头轮廓线dp,树形dp,数位dp,普通dp 3.容斥原理 4.polya原理 5.图论计数 6.生成函数 7.其它(生成树计数等等) 本文主要研究前3个内容 考虑基本计数原理:加法原理,减法原理,乘法原理,除法原理 计数的基本原则:结果不重不漏 加法原理比较自然,中间过程有时减法原理 考虑到无向,有向图的各种量值(生成树之类)计数,状态压缩dp解决 论文:ht

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 版