题解 洛谷P4550/BZOJ1426 【收集邮票】
这显然是一道概率的题目(废话)
设发\(f[i]\)表示买到第\(i\)张邮票还需要购买的期望次数,\(g[i]\)表示买到第\(i\)张邮票还需要期望花费的钱。
那么答案显然为\(g[0]\),我们来考虑怎么转移。
对于\(f[i]\),有三种情况:
- 现在有\(\frac{i}{n}\)的几率会买到重复的邮票,即\(f[i] \times \frac{i}{n}\).
- 现在有\(\frac{n-i}{n}\)的几率会买到新的邮票,即\(f[i+1] \times \frac{n-i}{n}\).
- 花费\(1\)次买现在的邮票。
所以我们可以列出:\(f[i]=f[i] \times \frac{i}{n} + f[i+1] \times \frac{n-i}{n} +1\).
方程较复杂,我们来化简一下。
\(f[i] - f[i] \times \frac{i}{n} =f[i+1] \times \frac{n-i}{n} +1\)
\(f[i] \times \frac{n-i}{n} =f[i+1] \times \frac{n-i}{n} +1\)
$f[i] =f[i+1] \times \frac{n}{n-i} $
我们可以知道\(f[n]\)是等于\(0\)的,所以倒推即可。
那对于\(g[i]\)怎么办呢?
同理,\(g[i]\)的推导跟\(f[i]\)类似,也分为买到自己已有的邮票和没有的邮票两种情况,即:
$g[i]=(f[i]+g[i]+1) \times \frac{i}{n} + (f[i+1]+g[i+1]+1) \times \frac{n-i}{n} $
同时我们也来化简一下:
$g[i]=\frac{i}{n}f[i]+\frac{i}{n}g[i] + \frac{n-i}{n}(f[i+1]+g[i+1]) +1 \(
\)\frac{n-i}{n}g[i]=\frac{i}{n}f[i] + \frac{n-i}{n}(f[i+1]+g[i+1]) +1 \(
\)g[i]=\frac{i}{n-i}f[i] + f[i+1]+g[i+1] +\frac{n}{n-i} $
\(g[n]\)仍然为0,我们还是可以倒推。
#include<bits/stdc++.h>
#define ll long long
#define inf 0x3f3f3f3f
#define RI register int
using namespace std;
const int N=1e4+2;
int n;double f[N],g[N];
inline double S(int x,int y){return (1.0*x)/(1.0*y);}
int main(){
scanf("%d",&n);
for(register int i=n-1;~i;--i){
f[i]=f[i+1]+S(n,n-i);
g[i]=S(i,n-i)*f[i]+g[i+1]+f[i+1]+S(n,n-i);
}printf("%.2lf",g[0]);
return 0;
}
题解 洛谷P4550/BZOJ1426 【收集邮票】的更多相关文章
- 洛谷P4550 【收集邮票】
题目链接: 神仙题QAQ 题目分析: 概率期望题是不可能会的,一辈子都不可能会的QAQ 这个题也太仙了 首先明确一下题意里面我感觉没太说清楚的地方,这里是抽到第\(i\)次要\(i\)元钱,不是抽到第 ...
- 洛谷 P3800 Power收集
题目背景 据说在红雾异变时,博丽灵梦单身前往红魔馆,用十分强硬的手段将事件解决了. 然而当时灵梦在Power达到MAX之前,不具有“上线收点”的能力,所以她想要知道她能收集多少P点,然而这个问题她答不 ...
- 题解 洛谷P5018【对称二叉树】(noip2018T4)
\(noip2018\) \(T4\)题解 其实呢,我是觉得这题比\(T3\)水到不知道哪里去了 毕竟我比较菜,不大会\(dp\) 好了开始讲正事 这题其实考察的其实就是选手对D(大)F(法)S(师) ...
- 题解 洛谷 P3396 【哈希冲突】(根号分治)
根号分治 前言 本题是一道讲解根号分治思想的论文题(然鹅我并没有找到论文),正 如论文中所说,根号算法--不仅是分块,根号分治利用的思想和分块像 似却又不同,某一篇洛谷日报中说过,分块算法实质上是一种 ...
- 题解-洛谷P5410 【模板】扩展 KMP(Z 函数)
题面 洛谷P5410 [模板]扩展 KMP(Z 函数) 给定两个字符串 \(a,b\),要求出两个数组:\(b\) 的 \(z\) 函数数组 \(z\).\(b\) 与 \(a\) 的每一个后缀的 L ...
- 题解-洛谷P4229 某位歌姬的故事
题面 洛谷P4229 某位歌姬的故事 \(T\) 组测试数据.有 \(n\) 个音节,每个音节 \(h_i\in[1,A]\),还有 \(m\) 个限制 \((l_i,r_i,g_i)\) 表示 \( ...
- 题解-洛谷P4724 【模板】三维凸包
洛谷P4724 [模板]三维凸包 给出空间中 \(n\) 个点 \(p_i\),求凸包表面积. 数据范围:\(1\le n\le 2000\). 这篇题解因为是世界上最逊的人写的,所以也会有求凸包体积 ...
- 题解-洛谷P4859 已经没有什么好害怕的了
洛谷P4859 已经没有什么好害怕的了 给定 \(n\) 和 \(k\),\(n\) 个糖果能量 \(a_i\) 和 \(n\) 个药片能量 \(b_i\),每个 \(a_i\) 和 \(b_i\) ...
- 题解-洛谷P5217 贫穷
洛谷P5217 贫穷 给定长度为 \(n\) 的初始文本 \(s\),有 \(m\) 个如下操作: \(\texttt{I x c}\),在第 \(x\) 个字母后面插入一个 \(c\). \(\te ...
随机推荐
- MVC接受JSON的一些注意事项
1.MVC接受前端传的JSON数据,相应的接受参数的位置使用@RequestBody注解进行标注 2.JSON传空字符串时,后台使用Integer进行接受时,会报for String ''一堆乱七八糟 ...
- UVA - 10859 Placing Lampposts 放置街灯
Placing Lampposts 传送门:https://vjudge.net/problem/UVA-10859 题目大意:给你一片森林,要求你在一些节点上放上灯,一个点放灯能照亮与之相连的所有的 ...
- C# 后台处理http请求
using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; using Syst ...
- P2885 [USACO07NOV]电话线Telephone Wire——Chemist
题目: https://www.luogu.org/problemnew/show/P2885 由于把每一根电线杆增加多少高度不确定,所以很难直接通过某种方法算出答案,考虑动态规划. 状态:f [ i ...
- 通过IDEA制作包含Java应程序的Docker镜像
IDEA官网在IDEA中把Java App制作成Docker镜像并启动一个容器运行 在idea上使用docker作为java的开发环境[][] ubuntu+docker+docker-compose ...
- [POI2009]SLO
Description 对于一个1-N的排列(ai),每次你可以交换两个数ax与ay(x<>y),代价为W(ax)+W(ay) 若干次交换的代价为每次交换的代价之和.请问将(ai)变为(b ...
- 438 Find All Anagrams in a String 找出字符串中所有的变位词
详见:https://leetcode.com/problems/find-all-anagrams-in-a-string/description/ C++: class Solution { pu ...
- 原创 SqlParameter 事务 批量数据插入
不错,很好,以后防注入批量事务提交虽然麻烦点研究了几个小时,但不会是问题了 SqlCommand cmd; HelpSqlServer helps = new HelpSqlServer(); //定 ...
- hihocoder编程练习赛52-3 部门聚会
思路: 树形dp. 实现: #include <bits/stdc++.h> using namespace std; ; int n, a[MAXN], in[MAXN]; vector ...
- [SPOJ1812]Longest Common Substring II 后缀自动机 多个串的最长公共子串
题目链接:http://www.spoj.com/problems/LCS2/ 其实两个串的LCS会了,多个串的LCS也就差不多了. 我们先用一个串建立后缀自动机,然后其它的串在上面跑.跑的时候算出每 ...