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

本文探讨了一个数学问题,即在一个部分数字丢失的排列中,如何计算逆序对数的期望值。解答分为三部分:未知数字间的贡献、已知数字间的贡献,以及未知与已知数字间的贡献。通过树状数组、概率分析等方法,详细解析了每部分的计算逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值