ABC450G Solution
abc450g
平方期望过于经典。考虑到 \(x\) 最后本质上是若干个数将其取相反数或不变的和,不严谨地写就是:
\[x=\sum_{i=1}^n{\pm a_i}
\]
因此,\(E(x)\) 可拆为:
\[E(x)=\sum_{i=1}^nE(i)^2+2\sum_{i=1}^n\sum_{j=i+1}^n E(i,j)
\]
第一个求和就很简单,就是所有数的平方和。接下来考虑第二个求和。
对于第一次操作的两个数 \(a,b\),相当于把 \(a,b\) 给捆绑了(之后不能单独运算),且将 \(b\) 的权改为相反数。
更一般的,对于某次操作的两个数 \(a,b\),相当于把 \(a,b\) 所代表的到一起的两坨再绑到一起,且将 \(b\) 那一坨所有数的权改为相反数。
钦定 \(i,j\),我们考虑 \(i,j\) 在操作中的变化。
若某次操作前剩 \(x\) 坨,那么:
- 若 \(i\) 或 \(j\) 所在的那一坨作为 \(b\),则 \(i,j\) 对 \(E(i,j)\) 的贡献取相反数。特别地,若 \(i,j\) 在此时被合并,则之后无论如何操作,其对 \(E(i,j)\) 的贡献已经不在可能变化。
- 若 \(i,j\) 没有一个作为 \(b\),无事发生。
因此,定义 \(dp_{i,0/1}\) 为第 \(i\) 次操作后,所钦定的两个数作为 \(b\),取了偶数/奇数次相反数的概率。
有转移:
\[dp_{i-1,j\wedge1}\times \frac{2}{n-i+1}\times \frac{n-i-1}{n-i}\to dp_{i,j}
\]
\[dp_{i,j\wedge 1}\times \frac{2}{(n-i)(n-i-1)}\to ans_j
\]
\[dp_{i-1,j}\times \frac{n-i-1}{n-i+1}\to dp_{i,j}
\]
分别代表:被减但不合并、被减且合并、不被减。
最后这一部分的答案即为:
\[\sum_{i=1}^n\sum_{j=1,j\ne i}^n(i\times j\times ans_0-i\times j\times ans_1)
\]
拆开后优化即为 \(O(n)\)。
我的实现的时间复杂度为 \(O(n\log n)\),求逆元妥当可做到 \(O(n+\log n)\)。
官方解法不用dp?可能思路差不多吧,其实这个做法的dp部分也不怎么难。
浙公网安备 33010602011771号