zoukankan      html  css  js  c++  java
  • [BZOJ1419]Red is good

    Description

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

    Input

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

    Output

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

    Sample Input

    5 1

    Sample Output

    4.166666

    HINT

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


    注意此题是权限题。

    设f[i][j]为有i张+1卡,j张-1卡的期望分数;

    $LARGE f[i][j]= frac{i}{i+j}(f[i-1][j]+1)+frac{j}{i+j}(f[i][j-1]-1)$

    f[i][0]=i;

    然后要滚动一下要不空间卡着。

    (可以顺带着A了CODEVS5905 是男人就下一百层2333)


    #include <iostream>
    #include <cstdio>
    using namespace std;
    int n, m;
    double f[2][5005];
    
    int main()
    {
        scanf("%d%d", &n, &m);
        int now = 1;
        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) * (double)i / (i + j) + (f[now][j-1] - 1) * (double)j / (i + j));//最优策略 
            }
        }
        printf("%.6lf
    ", f[now][m] - 5e-7);
        return 0;
    }
  • 相关阅读:
    js的基本数据类型有哪些?
    UML 类图
    三种代理模式
    jsp 知识点
    httpServlet
    Qt时间&日期
    Microsoft visual studio C 运行时库 在 xx.exe中检测到一个错误
    C++调用COM之错
    PCL中的bug修改
    Qt使用SQLite
  • 原文地址:https://www.cnblogs.com/BriMon/p/9392256.html
Copyright © 2011-2022 走看看