●Joyoi 收集邮票
题链:
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 收集邮票的更多相关文章
- 【BZOJ-1426】收集邮票 概率与期望DP
1426: 收集邮票 Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 261 Solved: 209[Submit][Status][Discuss] ...
- 【BZOJ1426】收集邮票 期望
[BZOJ1426]收集邮票 Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的, ...
- P4550 收集邮票
P4550 收集邮票 题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由 ...
- 收集邮票 (概率dp)
收集邮票 (概率dp) 题目描述 有 \(n\) 种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是 \(n\) 种邮票中的哪一种是等概率 ...
- Bzoj1426 收集邮票
Time Limit: 1 Sec Memory Limit: 162 MBSubmit: 292 Solved: 232 Description 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一 ...
- 【bzoj1426】收集邮票
题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮票,所 ...
- BZOJ 1426: 收集邮票 [DP 期望 平方]
传送门 题意: 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮 ...
- bzoj 1426:收集邮票 求平方的期望
显然如果收集了k天,ans=k*(k+1)/2=(k^2+k)/2.那么现在要求的就是这个东西的期望. 设f[i]表示已有i张邮票,收集到n张的期望次数,g[i]表示已有i张邮票,收集到n张的次数的平 ...
- P4550 收集邮票-洛谷luogu
传送门 题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢 ...
随机推荐
- Beta No.6
今天遇到的困难: github服务器响应很慢 推图的API接口相应较慢,超过了初始设定的最大延迟时间,导致了无法正确返回图片 ListView滑动删除Demo出现了某些Bug,这些Bug可能导致了某些 ...
- 201621123060《JAVA程序设计》第十一周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多线程相关内容. 2. 书面作业 本次PTA作业题集多线程 1. 源代码阅读:多线程程序BounceThread 1.1 BallR ...
- 团队项目7——团队冲刺(beta版本)
beta版本冲刺计划安排:http://www.cnblogs.com/ricardoCYF/p/8018413.html 12.06:http://www.cnblogs.com/ricardoCY ...
- C语言--第二周作业
****学习内容总结**** 1.Git和编辑器截图 2.MOOC截图 3.阅读<提问的智慧>感想 读完<提问的智慧>之后,我认为在提问时,要根据以下步骤: 谨慎明确的描述症状 ...
- 【Swift】 iOS开发容易产生Bug的地方
1.隐藏navigationBar(尤其是多级隐藏) 2.共用collectionView或tableView 3.继承关系下,注意覆写父类时的super方法的调用 4.关于权限的问题(相机权限,相册 ...
- 配置SpringAop时需要用到的AspectJ表达式
Aspectj切入点语法定义 在使用spring框架配置AOP的时候,不管是通过XML配置文件还是注解的方式都需要定义pointcut"切入点" 例如定义切入点表达式 execu ...
- Fluent Interface(流式接口)
我最初接触这个概念是读自<<模式-工程化实现及扩展>>,另外有Martin fowler大师 所写http://martinfowler.com/bliki/FluentInt ...
- [USACO4.1]麦香牛块Beef McNuggets
https://www.luogu.org/problemnew/show/P2737 给出n个数ai,求这n个数不能累加出的最大的数 最大的数无限大或能凑出所有的自然数则输出0 n<=10,a ...
- 操作MP3文件的元数据
参见:http://jingyan.baidu.com/article/03b2f78c4d5eae5ea237aee7.html 一.MP3文件的元数据 一个规则的MP3文件大致含有3个部分: TA ...
- 新概念英语(1-61)A bad cold
新概念英语(1-61)A bad cold What is good news for Jimmy? A:Where's Jimmy? B:He's in bed. A:What's the matt ...