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

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

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

未知数字和已知数字之间的贡献:对于一个已知数字 x x x,设它左边有 l e f t x left_x leftx个未知数字,比他大的未知数字有 g x g_x gx个,则它的贡献为: l e f t x ∗ g x c n t \frac{left_x * g_x}{cnt} cntleftxgx

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值