题意
给你两个([0,1])之间等概率随机权值和优先级序列,你需要把这个序列插入到一棵treap中,问这棵treap的期望深度,请对于([1,n])中的每个深度分别输出它的概率(实数,保留五位小数)
做法
按权值排序后,优先级显然也是随机的
所以这题可以转化成一个随机序列的笛卡尔树高度
令(f[i][j])为(j)个点不超过(i)高度的树的概率:
[f[i][j]=frac{1}{j}sumlimits_{k=1}^{j}f[i-1][k-1] imes f[i-1][j-k]
]
treap树高是期望(O(logn))的,直接舍弃后面的那部分,只算前面的就好了
(O(nlog^2n))
题外话
这题好神呐!