题链:

http://www.joyoi.cn/problem/tyvj-2325
题解.1:

期望dp,(平方的期望不等于期望的平方。。。)
在这个题上坑了好久,也算是对期望的理解又深了一些。
很好的题解:http://www.cnblogs.com/ezyzy/p/6475861.html

再阐述一下平方的期望是在什么情况下可以递推的:
对于一个随机变量x,我们知道其每个取值的概率,
那么我们容易由定义得出这个随机变量的期望E(x)=p1*x1+p2*x2+...,
以及这个随机变量的平方的期望E(x²)=p1*x1²+p2*x2²+...。
现在由于种种原因,假设我们需要求出在这个随机变量的每个取值都加1但是概率不变的情况下的新的平方的期望E'(x²)=p1*(x1+1)²+p2*(x2+1)²+...,
(注意,只是权值改变,对应概率未变)
那么这个时候就可以用平方的期望的递推式子了:E'(x²)=E(x²)+2*E(x)+1

反观这类题目的dp转移往往是分为当前状态成功与否两种情况,
而当我们确定了某种情况后,接下来就需要计算当前+后面的东西的总期望,再乘上这种情况的概率。
因为已确定了是成功还是失败,所以当前状态对期望的贡献只是在随机变量的取值上,而没有影响到其概率分布,所以才可以直接使用平方的期望的递推式子。

代码.1:

#include<bits/stdc++.h>
#define MAXN 10005
using namespace std;
double g[MAXN],f[MAXN];
int N;
int main(){
ios::sync_with_stdio(0);
cin>>N;
for(int i=N-1;i>=0;i--){
f[i]=f[i+1]+1.0*N/(N-i);
g[i]=1.0*i/N*(2*f[i]+1)+1.0*(N-i)/N*(g[i+1]+2*f[i+1]+1);
g[i]=g[i]/(N-i)*N;
}
cout<<fixed<<setprecision(2)<<(g[0]+f[0])/2<<endl;
return 0;
}

  

题解.2:

求期望。。。
正向枚举已经收集了i个,并计算收集第i个时的相关信息与贡献,
令a[i]表示收集了i个时期望购买了a次。
那么a[i+1]=a[i]+N/(N-i) (加上收集第i+1个时期望的购买次数)
然后要求收集第i+1个时期望的花费,
首先之前已经期望购买了a次,那么我们考虑:
首先一定要先买一次,价格为a+1
如果没买到(概率为i/N),再买一次,价格为a+2
如果还没买到(概率为(i/N)²),在买一次,价格为a+3
....(子子孙孙,无穷匮也。。。)
那么可以列出期望花费的式子:令p=i/N
A=(a+1)+(a+2)*p+(a+3)*p²+(a+4)*p³+.... [1]式
然后我们要求A的值,用错位相减法的得到,即:
A*p= (a+1)*p+(a+2)*p²+(a+3)*p³+.... [2]式
[1]式-[2]式:
(1-p)*A=a+1+p+p²+p³+...,是一个无穷项的等比数列
=a+1/(1-p)
所以得到A=(a+1/(1-p))/(1-p)
然后把A加进答案ans即可,(期望的线性可加性嘛,A即表示收集第i+1个所期望的花费)

代码.2:

#include<bits/stdc++.h>
#define MAXN 100005
using namespace std;
double p,a,ANS;
int N;
int main(){
ios::sync_with_stdio(0);
cin>>N;
for(int i=0;i<N;i++){
ANS+=(a+1.0*N/(N-i))/(1-1.0*i/N);
a+=1.0*N/(N-i);
}
cout<<fixed<<setprecision(2)<<ANS<<endl;
return 0;
}

  

●Joyoi 收集邮票的更多相关文章

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

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

  2. 【BZOJ1426】收集邮票 期望

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

  3. P4550 收集邮票

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

  4. 收集邮票 (概率dp)

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

  5. Bzoj1426 收集邮票

    Time Limit: 1 Sec  Memory Limit: 162 MBSubmit: 292  Solved: 232 Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一 ...

  6. 【bzoj1426】收集邮票

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

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

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

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

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

  9. P4550 收集邮票-洛谷luogu

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

随机推荐

  1. Python实现网站模拟登陆

    一.实验简介 1.1 基本介绍 本实验中我们将通过分析登陆流程并使用 Python 实现模拟登陆到一个实验提供的网站,在实验过程中将学习并实践 Python 的网络编程,Python 实现模拟登陆的方 ...

  2. Python 二分查找

    (非递归实现) def binary_search(alist, item): first = 0 last = len(alist)-1 while first<=last: midpoint ...

  3. hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken

    环境:weblogic10.3.5,hibernate3,GGTS(groovy/grails tools suite):出现这问题是因为该项目是从weblogic8.1.6下移植到weblogic1 ...

  4. 第四十六条:for-each循环优先于传统的for循环

    for(Elements e : list) { //doSomeThing-- }

  5. hp MSA50 5盘RAID5重建为4盘RAID5怎么恢复数据

    [用户单位] XX省电视台[数据恢复故障描述] 一台HP 服务器,挂接一台HP MSA50磁盘阵列,内接5块1TB硬盘,原先结构为RAID5. 使用一段时间后,其中一块硬盘掉线,因RAID5支持一块硬 ...

  6. VS Code 常用命令记录

    1. 创建解决方案 例:dotnet new sln -o HelloWorld.Solutions 其中 -o 表示输出文件夹 2.创建类库.web.mvc.webapi等项目 例:dotnet n ...

  7. Nginx在windows环境下的安装与简单配置

    版权声明:本文为博主原创文章,未经博主允许不得转载. 一. 下载并安装Nginx 去Nginx官网下载 我这里选取nginx/Windows-1.10.3版本,下载后解压出来即可,解压出来的路径不能含 ...

  8. JAVA_SE基础——47.接口

    如果一个抽象类中的所有方法都是抽象的,则可以将这个类用另一种方法来定义,即接口~ 在定义接口时,需要用interface关键字来声明,具体实例如code1 接口的定义格式:interface 接口名{ ...

  9. Mego(05) - 创建模型

    Mego框架使用一组约定来基于CLR类来构建模型.您可以指定其他配置来补充和/或覆盖通过约定发现的内容. 这里需要强调的我们EF不同的是框架只支持数据注释的语法来构建模型,后期只有通过其他接口才能更改 ...

  10. 详解get请求和post请求参数中文乱码的解决办法

    首先出现中文乱码的原因是tomcat默认的编码方式是"ISO-8859-1",这种编码方式以单个字节作为一个字符,而汉字是以两个字节表示一个字符的. 一,get请求参数中文乱码的解 ...