bzoj2720: [Violet 5]列队春游(概率期望+组合数学)
Description
.gif)
Input
.gif)
Output
.gif)
.gif)
Sample Input
Sample Output
HINT
.gif)
数学题都这么骚的么……怎么推出来的啊……我是真的想不出来……
首先,要算总的视野期望,我们可以把每一个小朋友的视野期望算出来,然后求和
于是考虑如何计算每个小朋友的视野期望,设$L$表示视野长度,视野期望为$ans$,则有$$ans=\sum_{i=1}^n i*P(L=i)$$
然后考虑转化一下,我们原来是枚举视野长度然后考虑概率,那么我们换一个想法,考虑它前面的第$i$个人如果被看到就会对答案有$1$的贡献,那么我们只要考虑前面的第$i$个人会被看到的概率就可以了,可以直接求和$$ans=\sum_{i=1}^n P(L\geq i)$$
考虑概率如何计算。设不小于第$i$个小朋友身高的有$k$个人(不包括他自己),那么$$ans=\sum_{i=1}^n \frac{(n-i+1)A^k_{n-i}}{A^{k+1}_n}$$
上面的式子意思就是,会挡住小朋友的人包括自己随便放总共有$A^{k+1}_n$种情况,其中那些会挡住小朋友的人不能放在小朋友前面的$i-1$个位置,也不能放在小朋友的位置,所以方案数为$A^k_{n-i}$,然后又因为小朋友自己有$n-i+1$个位置可以放,所以乘上一个$n-i+1$
然后考虑乱推式子$$ans=\sum_{i=1}^n \frac{(n-i+1)\frac{(n-i)!}{(n-i-k)!}}{\frac{n!}{(n-k-1)!}}$$
$$ans={\frac{(n-k-1)!}{n!}}\sum_{i=1}^n \frac{(n-i+1)!}{(n-i-k)!}$$
$$ans={\frac{(n-k-1)!}{n!}}(k+1)!\sum_{i=1}^n \frac{(n-i+1)!}{(n-i-k)!(k+1)!}$$
$$ans={\frac{(n-k-1)!}{n!}}(k+1)!\sum_{i=1}^n C_{n-i+1}^{k+1}$$
$$ans={\frac{(n-k-1)!}{n!}}(k+1)!C_{n+1}^{k+2}$$
$$ans=\frac{n+1}{k+2}$$
然后对每一个高度都带进去做就行了
ps:一开始没想通倒数第二行怎么化出来的……后来发现是自己组合数姿势不够……把求和拆开来然后前面加上一项$C_1^{k+2}$然后用组合数递推公式带进去化一下就好了……
时间复杂度$O(n)$
//minamoto
#include<bits/stdc++.h>
using namespace std;
const int N=;
int h[N],n,sum;double ans;
int main(){
scanf("%d",&n);
for(int i=,x;i<=n;++i)
scanf("%d",&x),++h[x];
for(int i=;i<=;++i) ans+=1.0*h[i]*(n+)/(n-sum+),sum+=h[i];
printf("%.2lf\n",ans);
return ;
}
bzoj2720: [Violet 5]列队春游(概率期望+组合数学)的更多相关文章
- BZOJ2720: [Violet 5]列队春游
2720: [Violet 5]列队春游 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 173 Solved: 125[Submit][Status] ...
- BZOJ 2720: [Violet 5]列队春游
2720: [Violet 5]列队春游 Time Limit: 5 Sec Memory Limit: 128 MBSubmit: 189 Solved: 133[Submit][Status] ...
- BZOJ 2720 [Violet 5]列队春游 ——期望DP
很喵的一道题(我可不是因为看了YOUSIKI的题解才变成这样的) $ans=\sum_{x<=n}\sum_{i<=n} iP(L=i)$ 其中P(x)表示视线为x的概率. 所以只需要求出 ...
- 【BZOJ-1419】Red is good 概率期望DP
1419: Red is good Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 660 Solved: 257[Submit][Status][Di ...
- uvalive 7331 Hovering Hornet 半平面交+概率期望
题意:一个骰子在一个人正方形内,蜜蜂在任意一个位置可以出现,问看到点数的期望. 思路:半平面交+概率期望 #include<cstdio> #include<cstring> ...
- OI队内测试一【数论概率期望】
版权声明:未经本人允许,擅自转载,一旦发现将严肃处理,情节严重者,将追究法律责任! 序:代码部分待更[因为在家写博客,代码保存在机房] 测试分数:110 本应分数:160 改完分数:200 T1: 题 ...
- CF_229E_Gift_概率DP+组合数学
CF_229E_Gift_概率DP+组合数学 题目描述: 很久很久以前,一位老人和他的妻子住在蔚蓝的海边.有一天,这位老人前去捕鱼,他捉到了一条活着的金鱼.鱼说:“噢,老渔人!我祈求你放我回到海里,这 ...
- 2016 多校联赛7 Balls and Boxes(概率期望)
Mr. Chopsticks is interested in random phenomena, and he conducts an experiment to study randomness. ...
- 牛客网多校赛第9场 E-Music Game【概率期望】【逆元】
链接:https://www.nowcoder.com/acm/contest/147/E 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言524 ...
随机推荐
- nexus3.1私服搭建
原文:http://blog.csdn.net/qqqqq210/article/details/52993337 1.简介 近期公司需要搭建jenkins自动化构建部署,需要搭建nexus私服环境, ...
- Windows下SVN服务器及客户端的使用
原文地址:windows下配置VisualSVN Server服务器 作者:Deem_passion 下载安装文件: 服务端安装文件:VisualSVN-Server-1.6.2 客户端安装文件:To ...
- 电脑控制手机的另一选择——android vnc server
近来发现的Android上的原生VNC Server,就是说只要手机上安装并运行这个软件,即可实现电脑上查看并控制手机了. 首先是手机端. 1)下载androidvncserver: http://c ...
- 【APUE】用户态与内核态的区别
当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态).此时处理器处于特权级最高的(0级)内核代码中 执行.当进程处于内核态时,执行的内核代码会使用当前进程 ...
- CentOS系统中常用查看系统信息和日志命令小结
转载:http://www.3lian.com/edu/2015/04-09/204628.html 进程 # ps -ef # 查看所有进程 # top # 实时显示进程状态(另一篇文章里面有详细的 ...
- [javase学习笔记]-9.2 单继承与多重继承
这一节我们来看java中的单继承和多重继承. 在java语言中,支持的是单继承,不直接支持多继承,可是对C++中的多继承进行了改良. 那么什么是单继承和多继承呢? 单继承:一个子类仅仅能有一个直接父类 ...
- Object.getOwnPropertyNames()
1.Object.getOwnPropertyNames(),遍历实例属性(包括不可枚举),返回属性名组成的数组 var arr = ["a", "b", &q ...
- serverSpeed是一个android手机端到服务器间udp/tcp对比测速软件
https://github.com/eltld/serverSpeed https://github.com/c-wind/serverSpeed https://github.com/PeterK ...
- Hadoop DistributedCache使用案例
背景 公司数据处理具有两个计算框架,单机框架和MR框架.眼下我已经抽象出一套API interface, 供业务计算开发者使用. 并分别在两个计算框架下实现了API的运行调度.应用开发者有时间须要通过 ...
- ubuntu hadoop伪分布式部署
环境 ubuntu hadoop2.8.1 java1.8 1.配置java1.8 2.配置ssh免密登录 3.hadoop配置 环境变量 配置hadoop环境文件hadoop-env.sh core ...