牛客IOI周赛25-提高组 A.找滚木(概率统计)
链接:https://ac.nowcoder.com/acm/contest/11243/A
来源:牛客网
题目描述
NIT正在玩皇室战争,NIT需要一种叫滚木的卡牌。众所周知皇室战争一共有n(n<=100000)种卡牌,NIT每开一个宝箱就能得到一张卡牌(宝箱开到每种卡牌的概率都是一样的)。现在NIT有一个换卡币,当NIT有两张一样(种类相同)的卡牌时,NIT可以用换卡币和这张卡牌换到滚木这张卡牌。NIT很想知道期望开多少个宝箱就可以得到滚木这张卡牌。
输入描述:
输入一个正整数n(n<=100000)表示皇室战争有多少张卡牌。
输出描述:
输出一个小数,保留两位小数,表示期望开多少个宝箱可以拿到滚木这张卡。
示例1
输入
[复制](javascript:void(0)😉
2
输出
[复制](javascript:void(0)😉
1.50
利用概率知识手玩一下即可。注意当开n个宝箱的时候一定可以得到这张卡,以及注意那个类似排列数的东西需要预处理一下求一个类似前缀积的数列出来。
#include <bits/stdc++.h>
using namespace std;
int n;
double pre[100005];
int main() {
cin >> n;
double ans = 0;
pre[0] = 1.0;
for(int i = 1; i <= n + 1; i++) {
pre[i] = pre[i - 1] * (1.0 * n - 1.0 * i) / n;
}
for(int i = 1; i <= n; i++) {
if(i == 1) {
ans += 1.0 / n;
continue;
}
ans += i * 1.0 * (1.0 * i / n * pre[i - 1]);
}
printf("%.2lf", ans);
return 0;
}
分类:
题库—牛客
, 数学—线性代数/概率论
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2020-05-04 洛谷P3275 [SCOI2011]糖果(缩点+拓扑序DP)