码迷,mamicode.com
首页 > 其他好文 > 详细

[bzoj1426]收集邮票

时间:2019-11-15 22:36:51      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:include   code   for   还需要   pre   src   img   color   event   

第i次购物的花费是i元,那么意味着可以理解为消费要加上次数,因此预处理抽出i张牌后,抽出剩余n-i张牌的期望次数,设g[i]表示这个期望,那么有方程$g[i]=((n-i)*g[i+1]+i*g[i])/n+1$,化简得到$g[i]=g[i+1]+n/(n-i)$
然后即可求出f[i]表示抽出i张牌后还需要的期望价格(假设当前是第一轮),那么同理也可以得到$f[i]=f[i+1]+g[i+1]+i*g[i]/(n-i)+n/(n-i)$,最终f[1]即为答案

技术图片
 1 #include<bits/stdc++.h>
 2 using namespace std;
 3 int n;
 4 double g[10005],f[10005];
 5 int main(){
 6     scanf("%d",&n);
 7     for(int i=n-1;i>=0;i--)g[i]=g[i+1]+1.0*n/(n-i);
 8     for(int i=n-1;i>=0;i--)f[i]=f[i+1]+g[i+1]+i*g[i]/(n-i)+1.0*n/(n-i);
 9     printf("%.2f",f[0]);
10 }
View Code

 

[bzoj1426]收集邮票

标签:include   code   for   还需要   pre   src   img   color   event   

原文地址:https://www.cnblogs.com/PYWBKTDA/p/11869712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!