bzoj2720: [Violet 5]列队春游
来源:互联网 发布:unity3d 像素画风 编辑:程序博客网 时间:2024/04/30 10:29
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2720
思路:
利用期望的线性性,可以转为求每个人的期望
设每个人能看到的距离为di
E[Σdi]=ΣE[di]
考虑怎么求每个人的期望
设sum[i]表示身高小于i的身高的人数
枚举位置,再枚举长度即可
但其实我们可以不用枚举位置,每个位置(如果足够长)其实是一样的
所以复杂度降为O(n^2)
#include<cstdio>#include<cstring>#include<iostream>#include<algorithm>const int maxn=305;typedef long double ld;using namespace std;int n,h[maxn],tmp[maxn];ld fac[maxn][maxn]; void init(){ scanf("%d",&n); for (int i=1;i<=n;i++) scanf("%d",&h[i]),tmp[i]=h[i]; sort(tmp+1,tmp+1+n); for (int i=1;i<=n;i++) h[i]=lower_bound(tmp+1,tmp+1+n,h[i])-tmp-1; memset(fac,0,sizeof(fac)); fac[0][0]=1; for (int i=1;i<=n;i++){ fac[i][0]=1; for (int j=1;j<=i;j++) fac[i][j]=fac[i][j-1]*(i-j+1); }} void work(){ ld ans=0; for (int i=1;i<=n;i++){//枚举小朋友 ld s=0; for (int j=1;j<=n;j++){//枚举长度 ans+=(s+fac[h[i]][j-1]/fac[n-1][j-1]*j)/n; s+=(n-h[i]-1)*fac[h[i]][j-1]/fac[n-1][j]*j; } } printf("%.2f\n",(double)ans);} int main(){ init(),work(); return 0;}
0 0
- bzoj2720: [Violet 5]列队春游
- BZOJ2720 [Violet 5]列队春游
- bzoj2720 [Violet 5]列队春游 (期望概率)
- BZOJ2720 列队春游 [期望][数学]
- [期望 数学] BZOJ 2720 [Violet 5]列队春游
- [BZOJ] 2720 列队春游 期望DP O(n)
- 春游
- 春游
- 【Violet 5】【BZOJ2721】樱花
- [bzoj2721][Violet 5]樱花
- VIOLET
- 【bzoj2721】【Violet 5】樱花【数论】
- BZOJ 2721 [Violet 5]樱花
- BZOJ 2721 Violet 5 樱花 数论
- 2721: [Violet 5]樱花|约数个数
- [数学 欧拉筛] BZOJ 2721 [Violet 5]樱花
- [F][5]bzoj 2724: [Violet 6]蒲公英
- bzoj 2721: [Violet 5]樱花 线性筛
- 使用注解标注Servlet
- 【主动引流】如何叠加公众号的流量和PC网站的流量?
- linux下C/C++头文件梳理,看完这篇再也不会搞糊涂头文件了!
- java学习笔记之——内部类
- 211. Add and Search Word - Data structure design
- bzoj2720: [Violet 5]列队春游
- C++独孤九剑第八式——平沙落雁(运行时浅剖析)
- LoaderManager访问SD里面的数据库
- C语言反转数组(reverse函数)
- HDU 3045 (斜率优化)
- CTO、技术总监、首席架构师的区别
- NULL指针
- 计算机的总线结构
- iOS 时间/ 日期选择器 UIDatePicker