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. 利用rsync如何同步单个文件

    rsync -vzrtopg --progress --include-from=/home/test/include.list --exclude=/* root@192.168.30.179::b ...

  2. 洛谷 P3067 [USACO12OPEN]平衡的奶牛群Balanced Cow S…

    P3067 [USACO12OPEN]平衡的奶牛群Balanced Cow S… 题目描述 Farmer John's owns N cows (2 <= N <= 20), where ...

  3. zookeeper协调技术

    本文转自http://www.cnblogs.com/wuxl360/p/5817471.html 感谢作者 一.分布式协调技术 在给大家介绍ZooKeeper之前先来给大家介绍一种技术——分布式协调 ...

  4. 网络基础篇(一)--TCP/IP协议族

    TCP/IP协议族是一个分层,多协议通信体系. 1 TCP/IP协议族体系结构 TCP/IP协议族自底而上分为四层: 数据链路层, 网络层, 传输层和应用层. 1.1 数据链路层 实现网卡接口的网络驱 ...

  5. Raphaeljs入门到精通(二)

    这节我们将介绍Raphaeljs中元素的属性和事件,案例还是以上一篇的代码展开 <!DOCTYPE html> <html xmlns="http://www.w3.org ...

  6. 使用OpenCV滑动条写成的简单调色器,实时输出RGB值

    好久没有写博客了,近期在看OpenCV.于是动手写了个简单的RGB调色器,在终端实时输出RGB的值.通过这个程序学习滑动条的使用.程序中主要用到cvCreateTrackbar ,其使用方法例如以下: ...

  7. 1360 xth 的玫瑰花

    1360 xth 的玫瑰花  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解       题目描述 Description 这天是rabbit 的生日 ...

  8. 支付宝即时到帐接口的python实现,演示样例採用django框架

    因工作须要研究了支付宝即时到帐接口.并成功应用到站点上,把过程拿出来分享. 即时到帐仅仅是支付宝众多商家服务中的一个,表示客户付款,客户用支付宝付款.支付宝收到款项后,立即通知你,而且此笔款项与交易脱 ...

  9. OTA升级中关于update.zip包的一些总结【转】

    本文转载自:http://429564140.iteye.com/blog/2337165 update.zip包整理 一. update.zip包的目录结构           |----boot. ...

  10. wox 快速搜索程序

    windows启动栏的搜索,会经常找不到exe. 使用wox可以非常快速的找到启动程序 https://github.com/Wox-launcher/Wox/ 安装完成后,默认alt+space出现 ...