zoukankan      html  css  js  c++  java
  • 【luogu4450】收集邮票 [期望dp]

    luogu4450 收集邮票

    有n种不同的邮票,皮皮想收集所有种类的邮票。唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n。但是由于凡凡也很喜欢邮票,所以皮皮购买第k张邮票需要支付k元钱。
    现在皮皮手中没有邮票,皮皮想知道自己得到所有种类的邮票需要花费的钱数目的期望。

    ==期望dp是真的神

    做过SPOJ1026FACDICE 就可以知道 若费用为1时,即求期望买多少次能买到每一种邮票

    (f_i)表示已经收集了(i)张 还期望买多少次才收集齐 (f[i]=frac in*f[i]+frac{n-i}nf[i+1]+1=f[i+1]+frac n{n-i})

    同理我们可以想到 设(g[i])表示已经收集了(i)张 还期望花费多少钱次才能收集齐

    (egin{align*}g[i]=frac in(g[i]+f[i]+1)+frac{n-i}n(g[i+1]+f[i]+1)=g[i+1]+f[i+1]+frac{i*f[i]+n}{n-i}end{align*})

    int main(){
    #ifndef ONLINE_JUDGE
        freopen("in.txt","r",stdin);
    #endif
    	rd(n),f[N]=g[n]=0;
    	for(int i=n-1;i>=0;--i)
    		f[i]=f[i+1]+((double)n/(n-i)),g[i]=g[i+1]+f[i+1]+((double)i*f[i]+n)/(double)(n-i);
    	printf("%.2f",g[0]);
        return 0; 
    }
    
  • 相关阅读:
    linux 软件多版本共存
    git new
    centos 7 重新设置分区大小
    yum 多线程插件,apt多线程插件
    配置opencv cmake
    cmake 配置
    OpenCV 静态库 CMAKE 文件
    cron
    开课啦
    pytorch转onnx问题
  • 原文地址:https://www.cnblogs.com/lxyyyy/p/11648242.html
Copyright © 2011-2022 走看看