1. 程式人生 > >左方之地 - 結論 - 組合計數

左方之地 - 結論 - 組合計數

題目大意:
給定一個序列 A \mathrm A
問一棵Treap(點的編號是有堆性質的二叉樹) x = 1

n d e p t h ( x )
A ( x ) \sum_{x=1}^n\mathrm{depth}(x)*\mathrm{A}(x) 的期望值是多少。
題解:
有個結論是,一個點的深度是這樣的:
將其編號的中序遍歷寫下來,從這個點對應中序遍歷的位置向左走,一開始計數器是0,每次遇到一個更小的數字就計數器++,向右同理,最後再加個1.
那麼考慮期望的線性性,算x對答案的貢獻,等價於計算x>y對答案有貢獻的排列有多少,然後+1。
不妨欽定x在y的左邊(最後還要乘以2),列舉中間隔著幾個位置d,那麼比y小的數字都要放在兩側,剩餘的隨意選:
f
( x ) = y = 1 x 1 d = 0 n 2 ( n d 2 y 1 ) ( y 1 ) ! ( n y 1 ) ! ( n d 1 ) f(x)=\sum_{y=1}^{x-1}\sum_{d=0}^{n-2}\binom{n-d-2}{y-1}(y-1)!(n-y-1)!(n-d-1)

最後那一項是列舉x的位置。
f ( x ) = y = 1 x 1 d = 0 n 2 ( n d 2 ) ! ( n d 1 ) ( n y 1 ) ! ( n d y 1 ) ! = y = 1 x 1 d = 0 n 2 ( n d 1 ) ! ( n d y 1 ) ! y ! ( n y 1 ) ! y ! ( n 1 ) ! ( n 1 ) ! = = y = 1 x 1 ( n 1 ) ! ( n 1 y ) d = 0 n 2 ( n d 1 y ) f(x)=\sum_{y=1}^{x-1}\sum_{d=0}^{n-2}\frac{(n-d-2)!(n-d-1)(n-y-1)!}{(n-d-y-1)!}\\ =\sum_{y=1}^{x-1}\sum_{d=0}^{n-2}\frac{(n-d-1)!}{(n-d-y-1)!y!}\frac{(n-y-1)!y!}{(n-1)!}(n-1)!\\ ==\sum_{y=1}^{x-1}\frac{(n-1)!}{\binom{n-1}{y}}\sum_{d=0}^{n-2}\binom{n-d-1}{y}
後半部分:
d = 0 n 2 ( n d 1 y ) = d = 1 n 1 ( d y ) = x = y n 1 ( x y ) = ( n y + 1 ) \sum_{d=0}^{n-2}\binom{n-d-1}{y}=\sum_{d=1}^{n-1}\binom{d}{y}=\sum_{x=y}^{n-1} \binom{x}{y}=\binom{n}{y+1}
因此:
f ( x ) = y = 1 x 1 ( n 1 ) ! ( n 1 y ) ( n y + 1 ) = f ( x 1 ) + ( n 1 ) ! ( n 1 x 1 ) ( n x ) f(x)=\sum_{y=1}^{x-1}\frac{(n-1)!}{\binom{n-1}{y}}\binom{n}{y+1}=f(x-1)+\frac{(n-1)!}{\binom{n-1}{x-1}}\binom{n}{x}