显然如果收集了k天,ans=k*(k+1)/2=(k^2+k)/2.那么现在要求的就是这个东西的期望。

  设f[i]表示已有i张邮票,收集到n张的期望次数,g[i]表示已有i张邮票,收集到n张的次数的平方的期望。

  显然i这个点有 $\frac{i}{n}$ 的概率走自环,有 $\frac{n-i}{n}$ 的概率走到i+1这个点。

  SO $$f[i]=(\frac{i}{n})\times(f[i]+1)+(\frac{n-i}{n})\times(f[i+1]+1)$$

  以前一直不懂平方的期望是怎么求的,今天终于证了一发。$$E((x+1)^2)=\sum_{i=0}^\infty P(i)*(i+1)^2$$

  因为P后边的那个式子是一个具体的值所以可以拆开。

  $$E((x+1)^2)=\sum_{i=0}^\infty P(i)*(i+1)^2=\sum_{i=0}^\infty P(i)*(i^2+2i+1)=\sum_{i=0}^\infty P(i)*(i^2)+2\times\sum_{i=0}^\infty P(i)*(i)+1=E[x^2]+2E[x]+1$$

  其中倒数第二步是根据期望的线性可加性得来。

  这样x^2的期望就可以由(x-1)^2的期望推来。

  所以g[i]和f[i]同理:设s[i]表示在从i点出发走了s[i]步后结束,g[i]=E(s[i]^2)。

  $$g[i]=(\frac{i}{n})\times E((s[i]+1)^2)+(\frac{n-i}{n})\times E((s[i+1]+1)^2)$$

  $$g[i]=(\frac{i}{n})\times(g[i]+2\times f[i]+1)+(\frac{n-i}{n})\times(g[i+1]+2*f[i+1]+1)$$

  最后化简一下递推就行了。

  

 #include<cstdio>
#include<cstring>
#include<algorithm>
#include<iostream>
#define N 100005
using namespace std;
double f[N],g[N];
int main()
{
int n;
scanf("%d",&n);
f[n]=;g[n]=;
for(int i=n-;i>=;i--)
{
f[i]=f[i+]+(double)n/(n-i);
g[i]=g[i+]+2.0*f[i+]+2.0*i/(n-i)*f[i]+1.0*n/(n-i);
}
printf("%.2lf\n",(g[]+f[])/);
return ;
}

 

bzoj 1426:收集邮票 求平方的期望的更多相关文章

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

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

  2. BZOJ 1426: 收集邮票 数学期望 + DP

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

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

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

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

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

  5. bzoj 1426 收集邮票

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

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

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

  7. BZOJ 1426--收集邮票(概率与期望&DP)

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

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

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

  9. 【BZOJ1426】收集邮票 期望

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

随机推荐

  1. 项目Beta冲刺预热

    Beta准备 1. 讨论组长是否重选的议题和结论. 经过讨论,我们认为,经过一段时间的磨合,现任组长是不需要更换的. 2. 下一阶段需要改进完善的功能. 增加关于征信的功能,贴近选题主题 美化界面,尽 ...

  2. NOIP2017 列队

    https://www.luogu.org/problemnew/show/P3960 p<=500 50分 模拟 每个人的出队只会影响当前行和最后一列 p<=500,有用的行只有500行 ...

  3. Css之导航栏下拉菜单

    Css: /*下拉菜单学习-2017.12.17 20:17 added by ldb*/ ul{ list-style-type:none; margin:; padding:; overflow: ...

  4. PAT1048. Find Coins(01背包问题动态规划解法)

    问题描述: Eva loves to collect coins from all over the universe, including some other planets like Mars. ...

  5. Docker学习笔记 - Docker的镜像

    一个容器实际上是运行在宿主机上的一个进程. 只不过在启动这个进程之前进行了一些特殊处理,让这个容器进入了一个全新的虚拟环境,与宿主机的环境分开, 所以这个进程及其子进程认为自己运行在一个独立的世界里面 ...

  6. 新概念英语(1-125)Tea for two

    Does Susan have tea by herself?A:Can't you come in and have tea now,Peter? Not yet.B:I must water th ...

  7. Ecplise 配置本地 https 测试

    今天做项目,需要关联Office 365.为了实现Office365的用户邮件信息与项目的实时同步,需要建立webhook订阅. Office 365 API 连接  https://graph.mi ...

  8. 基于UDP协议的控制台聊天程序(c++版)

    本博客由Rcchio原创,转载请告知作者 ------------------------------------------------------------------------------- ...

  9. Mybatis 中的转义字符

    记录以下mybatis中的转义字符,方便以后自己看一下 Mybatis转义字符表 < < 小于 > > 大于 & & 与 &apos; ' 单引号 &q ...

  10. python 正则详解

    正则表达式概述 正则表达式,又称正规表示式.正规表示法.正规表达式.规则表达式.常规表示法(英语:Regular Expression,在代码中常简写为regex.regexp或RE),是计算机科学的 ...