洛谷P4550 【收集邮票】
题目链接:
题目分析:
概率期望题是不可能会的,一辈子都不可能会的QAQ
这个题也太仙了
首先明确一下题意里面我感觉没太说清楚的地方,这里是抽到第\(i\)次要\(i\)元钱,不是抽到第\(i\)种不然就是一眼题了
我们定义两个数组,\(f[i]\)和\(g[i]\),分别表示现在取到第\(i\)张,要取完剩下的期望次数,以及现在取到第\(i\)张,要取完剩下的期望价格
对于\(f[i]\),首先显然\(f[n] = 0\), 然后考虑如何转移
抽一次有两种情况,抽到有的和没有的,抽到已经有的概率是\(\frac{i}{n}\),期望是\(\frac{i}{n} * f[i]\),抽到没有的概率是\(\frac{n - i}{n}\),期望是\(\frac{n-i}{n} * f[i + 1]\),然后算上自己的期望为\(1\)
于是有状态转移方程:\(f[i] = \frac{i}{n} * f[i] + \frac{n-i}{n} * f[i + 1] + 1\)
化简一下得到\(f[i] = f[i + 1] + \frac{n}{n - i}\)
博主要从机房回家了QAQ回去继续写
好我回家了,继续
对于\(g[i]\),首先显然\(g[n] = 0\), 然后考虑如何转移
抽一次有两种情况,抽到有的和没有的,抽到已经有的概率是\(\frac{i}{n}\),期望是\(\frac{i}{n} * (g[i] + f[i] + 1)\),抽到没有的概率是\(\frac{n - i}{n}\),期望是\(\frac{n-i}{n} * (g[i + 1] + f[i + 1] + 1)\)
于是有状态转移方程:\(g[i] = \frac{i}{n} * (g[i] + f[i] + 1) + \frac{n-i}{n} * (g[i + 1] + f[i + 1] + 1)\)
化简一下得到\(g[i] = \frac{i}{n - i} * f[i] + \frac{n}{n - i} + g[i + 1] + f[i + 1]\)
然后我们先跑\(f\)数组,再用\(f\)数组更新\(g\)数组就\(ok\)
就一个感想,这是怎么想到的,这又是怎么想到的
题还是做太少啦
代码:
#include <bits/stdc++.h>
#define N (10000 + 10)
using namespace std;
inline int read() {
int cnt = 0, f = 1; char c = getchar();
while (!isdigit(c)) {if (c == '-') f = -f; c = getchar();}
while (isdigit(c)) {cnt = (cnt << 3) + (cnt << 1) + c - '0'; c = getchar();}
return cnt * f;
}
int n;
double f[N], g[N];
signed main() {
n = read();
f[n] = 0, g[n] = 0;
for (register int i = n - 1; ~i; --i) {
f[i] = f[i + 1] + 1.0 * n / (1.0 * (n - i));
g[i] = 1.0 * i / (1.0 * (n - i)) * f[i] + 1.0 * n / (1.0 *(n - i)) + g[i + 1] + f[i + 1];
}
printf("%.2lf", g[0]);
return 0;
}
洛谷P4550 【收集邮票】的更多相关文章
- bzoj1426 (洛谷P4550) 收集邮票——期望
题目:https://www.luogu.org/problemnew/show/P4550 推式子……:https://blog.csdn.net/pygbingshen/article/detai ...
- 洛谷P4550 收集邮票(概率期望)
传送门 神仙题啊……这思路到底是怎么来的…… ps:本题是第$k$次买邮票需要$k$元,而不是买的邮票标号为$k$时花费$k$元 我们设$g[i]$表示现在有$i$张,要买到$n$张的期望张数,设$P ...
- [洛谷P4550]收集邮票
题目大意:有$n(n\leqslant10^4)$个物品,第$i$次会从这$n$个物品中随机获得一个,并付出$i$的代价,问获得所有的$n$个物品的代价的期望. 题解:令$f_i$表示现在已经获得了$ ...
- 洛谷 P4538 收集邮票
题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢邮票,所 ...
- bzoj1426(洛谷4550)收集邮票
题目:https://www.luogu.org/problemnew/show/P4550 全靠看TJ.怎么办?可是感觉好难呀. 首先设出 f[i] 为“买了 i 种,还要买到n种的期望次数”,s[ ...
- P4550 收集邮票
P4550 收集邮票 题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由 ...
- P4550 收集邮票-洛谷luogu
传送门 题目描述 有n种不同的邮票,皮皮想收集所有种类的邮票.唯一的收集方法是到同学凡凡那里购买,每次只能买一张,并且买到的邮票究竟是n种邮票中的哪一种是等概率的,概率均为1/n.但是由于凡凡也很喜欢 ...
- 题解 洛谷P4550/BZOJ1426 【收集邮票】
这显然是一道概率的题目(废话) 设发\(f[i]\)表示买到第\(i\)张邮票还需要购买的期望次数,\(g[i]\)表示买到第\(i\)张邮票还需要期望花费的钱. 那么答案显然为\(g[0]\),我们 ...
- 【洛谷】P2725 邮票 Stamps(dp)
题目背景 给一组 N 枚邮票的面值集合(如,{1 分,3 分})和一个上限 K —— 表示信封上能够贴 K 张邮票.计算从 1 到 M 的最大连续可贴出的邮资. 题目描述 例如,假设有 1 分和 3 ...
随机推荐
- 《DSP using MATLAB》Problem 8.43
代码: %% ------------------------------------------------------------------------ %% Output Info about ...
- springboot整合thymeleaf手动渲染
Thymeleaf手动渲染 为提高页面访问速度,可缓存html页面,客户端请求从缓存获取,获取不到再手动渲染 在spring4下 @Autowired ThymeleafViewResolver th ...
- spark 变量使用 broadcast、accumulator
broadcast 官方文档描述: Broadcast a read-only variable to the cluster, returning a [[org.apache.spark.broa ...
- TFS 忽略 文件
原文链接:http://ju.outofmemory.cn/entry/258689 让TFS忽略packages文件夹的更改 很多时候我们需要使用 Nuget 进行包管理,这时在我们的解决方案文件夹 ...
- Android开发 解决Installation failed due to XXX 问题
报错信息 Android studio 安装app的时候以下报错 Installation did not succeed. The application could not be installe ...
- CF431E Chemistry Experiment
题意:有n个试管,有高度为hi的水银.操作1:将试管x中的水银高度改成y.操作2:将体积为v的水注入试管,求水位的高度?n,q<=1e5. 标程: #include<bits/stdc++ ...
- Java怎样获取字符串最后出现的位置
lastIndexOf();表示获取字符串最后出现的位置,倒数的位置 @Test /** * lastIndexOf();//获取字符串最后出现的位置,倒数的位置 * */ public void f ...
- [JZOJ1904] 【2010集训队出题】拯救Protoss的故乡
题目 题目大意 给你一个树形的网络,每条边从父亲流向儿子.根节点为原点,叶子节点流向汇点,容量为无穷大. 可以给一些边扩大容量,最多总共扩大\(m\)容量.每条边的容量有上限. 求扩大容量后最大的最大 ...
- [JZOJ6271] 2019.8.4【NOIP提高组A】锻造
题目 题目大意 武器的每个级别有固定的两种属性\(b_i\)和\(c_i\) 可以用\(a\)的代价得到一把\(0\)级的武器. 可以将\(x\)级武器和\(y=\max(x-1,0)\)级武器融合锻 ...
- Spring+Mybatis常见问题随笔
错误1:无法绑定指定方法 异常堆栈:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found) 原因 ...