博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
bzoj2720: [Violet 5]列队春游(概率期望+组合数学)
阅读量:5119 次
发布时间:2019-06-13

本文共 1445 字,大约阅读时间需要 4 分钟。

Description

 

Input

Output

Sample Input

 

Sample Output

 

HINT

 

 

数学题都这么骚的么……怎么推出来的啊……我是真的想不出来……

首先,要算总的视野期望,我们可以把每一个小朋友的视野期望算出来,然后求和

于是考虑如何计算每个小朋友的视野期望,设$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)$

1 //minamoto 2 #include
3 using namespace std; 4 const int N=1005; 5 int h[N],n,sum;double ans; 6 int main(){ 7 scanf("%d",&n); 8 for(int i=1,x;i<=n;++i) 9 scanf("%d",&x),++h[x];10 for(int i=1;i<=1000;++i) ans+=1.0*h[i]*(n+1)/(n-sum+1),sum+=h[i];11 printf("%.2lf\n",ans);12 return 0;13 }

 

转载于:https://www.cnblogs.com/bztMinamoto/p/9790465.html

你可能感兴趣的文章
团队开发之个人博客八(4月27)
查看>>
发布功能完成
查看>>
【原】小程序常见问题整理
查看>>
C# ITextSharp pdf 自动打印
查看>>
【Java】synchronized与lock的区别
查看>>
django高级应用(分页功能)
查看>>
【转】Linux之printf命令
查看>>
关于PHP会话:session和cookie
查看>>
undefined与null
查看>>
STM32F10x_RTC秒中断
查看>>
[原创]网站HTML,XHTML,XML,WML,CSS等测试验证工具介绍
查看>>
display:none和visiblity:hidden区别
查看>>
C#double转化成字符串 保留小数位数, 不以科学计数法的形式出现。
查看>>
SpringMVC学习总结(三)——Controller接口详解(1)
查看>>
牛的障碍Cow Steeplechase
查看>>
Zookeeper选举算法原理
查看>>
嵌入式成长轨迹52 【Zigbee项目】【CC2430基础实验】【在PC用串口收数并发数】...
查看>>
3月29日AM
查看>>
利用IP地址查询接口来查询IP归属地
查看>>
HTML元素定义 ID,Class,Style的优先级
查看>>