Codeforce 1096 :F. Inversion Expectation(期望 ,分析)

题目大意:有一个长为 n 的排列,有一部分数字丢失了,问你逆序对数的期望是多少。

题解:
答案的贡献分成三部分:
未知部分相当于一个随机排列,设未知数字的个数为cntcntcnt,则未知数字之间的贡献为:ans=cnt(cnt1)4ans = \frac{cnt * (cnt - 1)}{4}ans=4cnt∗(cnt−1)​
已知数字和已知数字之间的贡献:经典树状数组nlogn做法可以求得

未知数字和已知数字之间的贡献:对于一个已知数字 xxx,设它左边有 leftxleft_xleftx​个未知数字,比他大的未知数字有 gxg_xgx​个,则它的贡献为:leftxgxcnt\frac{left_x * g_x}{cnt}cntleftx​∗gx​​

理由:单独考虑每一个比 x 大的数字的贡献:设 y>xy > xy>x,yyy 有 leftxcnt\frac{left_x}{cnt}cntleftx​​的概率位于 x 的左边,与 x 形成一对逆序对,因此 y 对 x 的贡献为 1leftxcnt1 * \frac{left_x}{cnt}1∗cntleftx​​,接着考虑所有比 x 大的未知数字,根据线性期望的性质,得到上式。

上一篇:Oracle基础 exp/imp和expdp/impdp的区别:


下一篇:1096. 花括号展开 II