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部分也不怎么难。

posted @ 2026-03-22 17:16  yangbaich  阅读(31)  评论(0)    收藏  举报