[BZOJ2720 Violet 5]列队春游(概率期望+组合数学)
1.数塔2.[洛谷P2014] 选课3.玉蟾宫 (悬线DP)4.MooFest POJ-1990 (树状数组)5.情书密码 (树状数组)6.[SCOI 2009] 迷路 (矩阵快速幂)7.[BZOJ3306] 树8.[NOI2002] 荒岛野人9.SHUFFLE 洗牌 (扩展欧几里得+龟速乘)10.[SDOI2009] Bill的挑战 (状压DP)11.P4168 [Violet] 蒲公英 (莫队的强制在线)12.P3667 [USACO17OPEN] Bovine Genomics G (set容器+二分)13.P7903 兜心の顶(构造)
14.[BZOJ2720 Violet 5]列队春游(概率期望+组合数学)
15.划分大理石(多重背包)16.P5746 [NOI2002] 机器人M号17.苍与红的试炼(数位DP)18.【唐赛】高一小学期219.P10779 BZOJ4316 小 C 的独立集 (仙人掌DP)20.关于求合法括号子序列个数列队春游
问题描述
输入格式:
输出格式:
样例输入:
3
1 2 3
样例输出:
4.33
提示
思路
根据期望的线性性质,我们可以枚举每种可能的视野,然后求和
对于每种视野,其期望为该种视野的视野长度 * 该种视野的概率
设某个小朋友的视野期望为
由于前面的第
设不小于第
那么会挡住小朋友的人包括自己随便放总共有
所以最终
然后就是 愉快的 导管子 导式子时光了
很多题解都没有解释倒数第二个式子是怎么导出来的(可能只有我这个蒟蒻看不懂吧 大悲)
简单解释一下:
先将
在式子最后加上一个
由组合数递推式子
反复合并,最终得到
code
Elaina's code
#include<bits/stdc++.h>
using namespace std;
const double eps=1e-8;
const int N=5050;
#define int long long
#define inf 0x3f
#define INF 0x3f3f3f3f
#define mst(a,b) memset(a,b,sizeof(a))
#define re register
#define Elaina 0
#define lson (rt<<1)
#define rson (rt<<1|1)
inline int read(){
int x=0,f=1;
char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
for(;isdigit(ch);ch=getchar()) x=x*10+ch-'0';
return x*f;
}
int n,a[N];
double h[N],ans=0,sum=0;
main(){
n=read();
for(int i=1;i<=n;i++){
a[i]=read();
h[a[i]]++;
}
for(int i=1;i<=1000;i++){
ans+=1.0*h[i]*(n+1)/(n-sum+1);
sum+=h[i];
}
printf("%.2lf",ans);
return Elaina;
}
都看到这了,真的不点个赞吗(>ω<*)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本