1. 程式人生 > >bzoj2720: [Violet 5]列隊春遊(概率期望+組合數學)

bzoj2720: [Violet 5]列隊春遊(概率期望+組合數學)

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$