题目链接

戳我

\(Solution\)

我们首先转换一下问题:

假设我们进行了k轮得到了所有种类的邮票

则所花费用为:

\[(1+2+5+...+k)=\frac{(1+k)*k}{2}=\frac{k+k^2}{2}
\]

所以我们现在要求的就是\(\frac{k+k^2}{2}\)的期望

因为\(E(A+B)=E(A)+E(B)\)

所以\(E(k+k^2)=E(k)+E(k^2)\)

\(ps:\)平方的期望不等于期望的平方

所以我们要分别维护

设\(p1[i]\)为收集了\(i\)张邮票之后还要花费的次数的期望,\(p2[i]\)为收集了\(i\)张邮票之后还要花费的次数平方的期望

由于有\(\frac{i}{n}\)的概率拿到重复的,\(\frac{n-i}{n}\)的概率拿到不重复的。

可得\(p1\)的方程:

\[p1[i]=(p1[i]+1)*\frac{i}{n}+(p1[i+1]+1)*\frac{n-i}{n}
\]

将上方程可化简为:

\[p1[i]=p1[i+1]*\frac{n}{n-i}
\]

因为\(E((x+1)^2)=E(x^2+2x+1)=E(x^2)+E(2x)+E(1)=E(X^2)+2E(x)+1\)

\(p2\)的方程:

\[p2[i]=(p2[i]+2*p1[i]+1)*\frac{i}{n}+(p2[i+1]+p1[i+1]*2+1)*\frac{n-i}{n}
\]

化简为:

\[p2[i]=p2[i+1]+2*p1[i+1]+1+(2*p1[i]+1)*\frac{i}{n-i}
\]

最后答案为:

\[\frac{p1[0]+p2[0]}{2}
\]

\(Code\)

#include<bits/stdc++.h>
#define rg register
#define file(x) freopen(x".in","r",stdin);freopen(x".out","w",stdout);
using namespace std;
int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9') f=(c=='-')?-1:1,c=getchar();
while(c>='0'&&c<='9') x=x*10+c-48,c=getchar();
return f*x;
}
double p1[10001],p2[10001];
int main(){
int n=read();
p2[n]=0;p1[n]=0;
for(int i=n-1;i>=0;i--)
p1[i]=p1[i+1]+n*1.0/(n-i),p2[i]=p2[i+1]+2*p1[i+1]+1+i*1.0/(n-i)*(2*p1[i]+1);
printf("%0.2lf",(p1[0]+p2[0])/2);
return 0;
}

「BZOJ1426」收集邮票的更多相关文章

  1. 【BZOJ1426】收集邮票 期望

    [BZOJ1426]收集邮票 Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的, ...

  2. 【BZOJ-1426】收集邮票 概率与期望DP

    1426: 收集邮票 Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 261  Solved: 209[Submit][Status][Discuss] ...

  3. 【bzoj1426】收集邮票

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

  4. 【BZOJ1426】收集邮票 期望DP

    题目大意 有\(n\)种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是\(n\)种邮票中的哪一种是等概率的,概率均为\(\frac{1} ...

  5. 【BZOJ1426】收集邮票 题解 (期望)

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

  6. 题解 洛谷P4550/BZOJ1426 【收集邮票】

    这显然是一道概率的题目(废话) 设发\(f[i]\)表示买到第\(i\)张邮票还需要购买的期望次数,\(g[i]\)表示买到第\(i\)张邮票还需要期望花费的钱. 那么答案显然为\(g[0]\),我们 ...

  7. 【BZOJ1426】收集邮票 概率DP 论文题 推公式题

    链接: #include <stdio.h> int main() { puts("转载请注明出处[辗转山河弋流歌 by 空灰冰魂]谢谢"); puts("网 ...

  8. 「LOJ#10042」「一本通 2.1 练习 8」收集雪花 (map

    题目描述 不同的雪花往往有不同的形状.在北方的同学想将雪花收集起来,作为礼物送给在南方的同学们.一共有 n 个时刻,给出每个时刻下落雪花的形状,用不同的整数表示不同的形状.在收集的过程中,同学们不希望 ...

  9. #10042. 「一本通 2.1 练习 8」收集雪花 || 离散化 || 双指针法 || C++ || LOJ

    题目:#10042. 「一本通 2.1 练习 8」收集雪花 看到网上没有这道题的题解,所以写一下. 要标记数字是否存在,看到x<=1e9,所以考虑用离散化,然后开一个last数组,last[i] ...

随机推荐

  1. ES6系列_5之数字操作

    下面是针对ES6新增的一些数字操作方法进行简单梳理. 1.数字判断和转换 (1)数字验证Number.isFinite( xx ) 使用Number.isFinite( )来进行数字验证,只要是数字, ...

  2. SpringFox swagger2 and SpringFox swagger2 UI 接口文档生成与查看

    依赖: <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency ...

  3. Dubbo Overview

    Overview Architecture Provider: 暴露服务的服务提供方. Consumer: 调用远程服务的服务消费方. Registry: 服务注册与发现的注册中心. Monitor: ...

  4. socket & pipe note

    [socket & pipe note] 1.socket类型 2.大小端 3.socketpair 如何创建全双工管道? 直接的办法当然是pipe两次,创建两组管道,但是有没有更简单的呢? ...

  5. Unity Editor(一)OnInspectorGUI的重写与面板的创建

    http://blog.csdn.net/husheng0/article/details/52568027

  6. 在windows下安装python包管理器pip及使用

      从来没有在Windows下用过pip,今天试了下,原来pip也可以在Windows下安装,使用也和Linux下一样简单. 先从下面的地址下载pip源码: http://pypi.python.or ...

  7. Halcon中xld的常见特征的含义总结

    如下图:

  8. C/C++互相调用

    参考: http://www.cnblogs.com/Yogurshine/p/3913073.html http://blog.chinaunix.net/uid-24118190-id-29853 ...

  9. Forms in Angular 2

    Input handling is an important part of application development. The ng-model directive provided in A ...

  10. DIV+CSS布局时, DIV的高度和宽度特性

    这个没有特别的做要求,你要根据你自己的页面整体布局来设置,还有根据div的特性来设置,div默认情况是宽度最大化(100%).高度最小化,高度随着内容自动伸展: 一般情况做网页的话,大部分都是固定了总 ...