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\)张 还期望花费多少钱次才能收集齐

\(\begin{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; 
}

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-07-09
  • 2022-12-23
  • 2021-08-14
  • 2021-06-03
  • 2021-09-22
  • 2021-07-15
猜你喜欢
  • 2021-11-02
  • 2021-06-13
  • 2022-12-23
  • 2021-11-29
  • 2021-10-05
  • 2021-09-30
  • 2022-12-23
相关资源
相似解决方案