zoukankan      html  css  js  c++  java
  • BZOJ 1426 收集邮票 ——概率DP

    $f(i)$表示现在有$i$张,买到$n$张的期望

    所以$f(i)=f(i+1)+frac {n}{n-i}$

    费用提前计算,每张邮票看做一元,然后使后面每一张加1元

    $g(i)$表示当前为$i$张期望到$n$张时花掉的钱。

    那么$g(i)=g(i+1)+f(i+1)+frac{i}{n-i}f(i)+frac{n}{n-i}$

    递推即可

    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define F(i,j,k) for (int i=j;i<=k;++i)
    #define D(i,j,k) for (int i=j;i>=k;--i)
    double f[10005],g[10005],nn;int n;
    int main()
    {
        scanf("%d",&n); nn=n;
        D(i,n-1,0) f[i]=f[i+1]+nn/(nn-i);
        D(i,n-1,0) g[i]=g[i+1]+f[i+1]+i/(nn-i)*f[i]+nn/(nn-i);
        printf("%.2f
    ",g[0]);
    }
    

      

  • 相关阅读:
    java lambda
    ssh配置基础
    信息安全课程笔记1
    字体标记与文字布局
    字符串:格式化
    字符串
    标签详细描述
    HTML中的标签列表
    html(1)
    python列表命令
  • 原文地址:https://www.cnblogs.com/SfailSth/p/6607091.html
Copyright © 2011-2022 走看看