Description

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

Input

一行,一个数字N,  N<=10000

Output

要付出多少钱. 保留二位小数

题解:

挺神的一道期望 $DP$.
令 $f_{i}$ 表示已经有 $i$ 种不同的邮票,还需购买的期望次数.
令 $g_{i}$ 表示已经有 $i$ 种不同的邮票,还需花的期望钱数.
先考虑 $f_{i}$ 怎么求.
依据定义,不难得知 $f_{n}=0$.
而 $f_{i}=P(没抽到新的)\times 次数 + P(抽到新的)\times 次数$.
即 $f_{i}=\frac{i}{n}\times(f_{i}+1)+\frac{n-i}{n}\times(f_{i+1}+1)$.
整理,得 $f_{i}=\frac{n}{n-i}+f_{i+1}$.
再考虑 $g_{i}$
 
$g_{i}=(g_{i}+1+f_{i})\times\frac{i}{n}+(g_{i+1}+1+f_{i+1})\times\frac{n-i}{n}$.
考虑一下具体含义:
依据题目,抽到第 $k$ 张牌的代价为 $k$ 元.
总代价与抽到卡牌的顺序是无关的.
我们就可以默认当前抽到的卡牌代价是 $1$ 元,后面的卡牌依次排开.
考虑未抽到新卡牌的情况:
已经有 $i$ 种牌到终止局面的代价为 $f_{i}$,抽到当前卡牌的代价已被我们定义为 $1$. 代价是一个依次加 $1$ 的数列,等同于当前局面
到达 $f_{i}$ 后,每张卡牌的代价都要比原来多 $1$.
而根据我们定义的方程,已有 $i$ 张后,我们期望抽的次数是 $f_{i}$.
那么,对于 $f_{i}$ 张卡片,每张的价格都加 $1$ 即可.
对于 $g_{i+1}$ 的情况同理即可.
$g_{i}=(g_{i}+1+f_{i})\times\frac{i}{n}+(g_{i+1}+1+f_{i+1})\times\frac{n-i}{n}$,整理一下即可. 
 
#include <bits/stdc++.h>
using namespace std;
double n,f[10010],s[10010];
int main()
{
scanf("%lf",&n);
for(int i=n-1;i>=0;i--)
{
s[i]=s[i+1]+n/(n-i);
f[i]=f[i+1]+s[i+1]+s[i]*i/(n-i)+n/(n-i);
}
printf("%.2f",f[0]);
return 0;
}

  

BZOJ 1426: 收集邮票 数学期望 + DP的更多相关文章

  1. bzoj 1426: 收集邮票【期望dp】

    我太菜了,看的hzwer的blog才懂 大概是设f[i]表示已经拥有了i张邮票后期望还要买的邮票数,这个转移比较简单是f[i]=f[i]*(i/n)+f[i+1]*((n-i)/n)+1 然后设g[i ...

  2. 2018.08.31 bzoj1426 收集邮票(期望dp)

    描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且 买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮票,所以 ...

  3. BZOJ 1426: 收集邮票 [DP 期望 平方]

    传送门 题意: 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮 ...

  4. bzoj 1426:收集邮票 求平方的期望

    显然如果收集了k天,ans=k*(k+1)/2=(k^2+k)/2.那么现在要求的就是这个东西的期望. 设f[i]表示已有i张邮票,收集到n张的期望次数,g[i]表示已有i张邮票,收集到n张的次数的平 ...

  5. BZOJ 1426 收集邮票 ——概率DP

    $f(i)$表示现在有$i$张,买到$n$张的期望 所以$f(i)=f(i+1)+\frac {n}{n-i}$ 费用提前计算,每张邮票看做一元,然后使后面每一张加1元 $g(i)$表示当前为$i$张 ...

  6. bzoj 1426 收集邮票

    f[i]:当前已拥有i种邮票,还需要买的邮票数的期望值. g[i]:当前已拥有i种邮票,还需要的钱的期望值. 每张邮票初始都是1元钱,每买一张邮票,还没购买的邮票每张都涨价1元.  f[i]=1+(n ...

  7. [P4550] 收集邮票 - 概率期望,dp

    套路性地倒过来考虑,设\(f[i]\)表示拥有了\(i\)种票子时还需要多少次购买,\(g[i]\)表示还需要多少钱 推\(g[i]\)递推式时注意把代价倒过来(反正总数一定,从顺序第\(1\)张开始 ...

  8. 【BZOJ】1426: 收集邮票 期望DP

    [题意]有n种不同的邮票,第i次可以花i元等概率购买到一种邮票,求集齐n种邮票的期望代价.n<=10^4. [算法]期望DP [题解]首先设g[i]表示已拥有i张邮票集齐的期望购买次数,根据全期 ...

  9. codeforces1097D Makoto and a Blackboard 数学+期望dp

    题目传送门 题目大意: 给出一个n和k,每次操作可以把n等概率的变成自己的某一个因数,(6可以变成1,2,3,6,并且概率相等),问经过k次操作后,期望是多少? 思路:数学和期望dp  好题好题!! ...

随机推荐

  1. cogs 290. [CTSC2000] 丘比特的烦恼

    290. [CTSC2000] 丘比特的烦恼 ★★★   输入文件:cupid.in   输出文件:cupid.out   简单对比时间限制:1 s   内存限制:128 MB 随着社会的不断发展,人 ...

  2. MVC.Net:对MVC5部署时出现403.14错误的解决方法

    当我们部署MVC5到IIS 7的时候,有时会出现403.14的错误,如下图: 对于这个错误的解决方法就是在应用程序的web.config的system.webServer节点中加入这一句: <m ...

  3. HDU 5435

    数位DP题,然而不会做.设dp[i][j]表示前i位异或和为j的时候的个数.先dp出所有的可能组合使得异或和为j的个数,然后按位进行枚举.对于dp[i][j],其实不止是前i位,对于后i位的情况同样适 ...

  4. NGINX之——配置HTTPS加密反向代理訪问–自签CA

    转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46695495 出于公司内部訪问考虑,採用的CA是本机Openssl自签名生成的,因 ...

  5. nyoj 1238 最少换乘 (河南省第八届acm程序设计大赛)

    题目1238 题目信息 执行结果 本题排行 pid=1238" style="text-decoration:none; color:rgb(55,119,188)"&g ...

  6. Delphi 中控件路径加入不进去解决方法

    使用notepa++打开project中的*.dproj文件,在里面找到相似例如以下的区域 <DCC_UnitSearchPath>T:\BusinessSkinForm1006Sourc ...

  7. selenium IDE 回放报错

    解决:Selenium RC未启动,启动即可. java -jar selenium-server-standalone-2.25.0.jar 启动RC报错,提示找不到firefox的path,于是配 ...

  8. 9.JAVA编程思想 多形性

    欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51040241 "对于面向对象的程序设计语言,多型性是第三种最主要的特 ...

  9. Rails5 关联表格搜索

    创建: 2017/08/13   other_type_car = Car.joins(:car_type).active.find_by(car_type: car_type)   @recomme ...

  10. HTML多媒体标记之字幕标记

    在HTML中,可以向页面中插入字幕,水平或垂直滚动显示文字信息,字幕标记的格式如下: <marquee 属性="值"...>滚动的文字信息</marquee> ...