【做题笔记】收集邮票 做题笔记

news/2024/9/22 20:39:26

P4550 收集邮票

展开目录

目录
  • P4550 收集邮票
    • Reading
    • Step 1
    • Step 2
    • Code
    • 彩蛋

Reading

\(k\ge 1\) 时,可以通过支付 \(k\) 元钱获得一张 \(n\) 种邮票中的某种邮票。这 \(n\) 种邮票等概率出现,求买到全部 \(n\) 种邮票的花费期望。

Step 1

\(k\)\(k\) 元太难搞了,干脆直接全打成 \(1\) 元。

设买到 \(i\) 张邮票,要买完全部 \(n\) 种所需的期望价格为 \(f_i\).显然 \(f_n = 0\).

当买到 \(i\) 张邮票时,下次有 \(\frac{i}{n}\) 的概率买到有的,\(\frac{n-i}{n}\) 的概率买到没有的。

前者期望为 \(\frac{i}{n}f_i\),后者为 \(\frac{n-i}{n}f_{i+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} \]

Step 2

接下来扩展到 \(k\)\(k\) 元。

\(g_i\) 为当前买了 \(i\) 张邮票,要买完全部 \(n\) 种的期望价格。很显然 \(g_n\) 也是 \(0\).

于是买到已经有的邮票的期望是 \(\frac{i}{n}(g_i+f_i+1)\),否则期望为 \(\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{n}{n-i}f_i+g_{i+1} \]

Code

因为只需要推两个式子,直接从 \(n\) 开始逆推。可以滚动优化。

展开代码
#include <bits/stdc++.h>
#define ll long long
#define MyWife Cristallo
using namespace std;
int n;
double f, g;
int main() {scanf("%d", &n);for(int i = n; i; --i) f += n / (n - i + 1) * 1.0, g += n * f / (n - i + 1) * 1.0;printf("%.2lf\n", g);return 0;
}

彩蛋

怎么能少了sb错误呢:

image

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/63466.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

单机版 ClickHouse 部署和 SpringBoot 程序访问

ClickHouse 是俄罗斯的 Yandex 于 2016 年开源的列式存储数据库(DBMS),使用C++语言编写,主要用于在线分析处理查询(OLAP),能够使用SQL查询实时生成分析数据报告。 OLAP 为联机分析处理,专注于统计查询;OLTP 为联机事务处理,专注于增删改。 ClickHouse 的优势在于单表…

用户验收测试指南8实施测试

8 实施测试 到目前为止,我们已经规划了我们的 UAT 演习,并制定了测试的总体战略,然后设计了所有测试并编写了测试脚本。现在,我们已准备好实施计划和进行测试。 在本章中,我们将介绍如何安排所有测试,以实现我们的测试策略,并根据验收标准评估系统。为此,我们需要记录所…

Linux中删除文本中所有的重复的字符保持唯一

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试文本 abk akkkkccc 8777 ,,, aaaf 333444 --- uukk22 [root@PC1 test]# cat a.txt | tr -s [:alnum:] ## 删除连续的重复字符 abk akc 87 ,,, af 34 --- uk2 [root@PC1 test]# …

ConcurrentLinkedQueue详解(图文并茂)

前言 ConcurrentLinkedQueue是基于链接节点的无界线程安全队列。此队列按照FIFO(先进先出)原则对元素进行排序。队列的头部是队列中存在时间最长的元素,而队列的尾部则是最近添加的元素。新的元素总是被插入到队列的尾部,而队列的获取操作(例如poll或peek)则是从队列头部…

Linux 中实现文本中所有的单词的第一个字符大写,其余字符小写

001、[root@PC1 test]# ls a.txt [root@PC1 test]# cat a.txt ## 测试数据 afdf eDET FDSS FFde fexk mxnd [root@PC1 test]# cat a.txt | awk {for(i = 1; i <= NF; i++) {$i = toupper(subst…

Docker方式搭建Maven私服

私服搭建 如下讲解如何基于Docker方式快速搭建Nexus3私服。 编写docker-compose.yaml文件,内容如下: version: 2services:nexus3:image: sonatype/nexus3:3.72.0container_name: nexus3restart: alwaysports:- 8081:8081 volumes:- /data/opt/nexus3/data:/nexus-data为了避免…

安全的路很长,致迷茫的你

最近有一些朋友找到我,跟我聊,说自己感觉很迷茫,不知所措,不知道未来该怎么办?安全该怎么做?OKR该怎么写?其实我想反问他以下几个问题: 1.漏洞研究了几个? 2.样本分析了几个? 3.这段时间看了多少安全技术类文档? 4.目前流行的恶意样本家族都有哪些? 5.目当流行的影…

我对什么都感兴趣,可我迷茫了

我收到一个同学给我的邮件问了个在我看来属于“太阳系”级的难题,比宇宙终极难题还差那么些^^他问: ----------------- 这几天一直挺困惑。说下我的问题,你有空的时候帮我解答下吧。 今天问自己个问题,找个自己的特长现在开始发展它。 基本上以后主要就靠这个特长工作。 但…