CF1753C Wish I Knew How to Sort

CF1753C Wish I Knew How to Sort

Solution

2000*,我不能理解。

普遍想法是用逆序对来转,逆序对的减少视作一次有用交换,但其状态数太多,且转移与所选交换对 \((i, j)\) 有关,因此无从下手。

妙就妙在这点:由于 \(0,1\) 数量一定,且最终状态一定是前 \(m\) 个数为 \(0\),并且 \(m\) 即为序列中 \(0\) 的总数。

于是,我们改变有用转移的定义:一次使得前 \(m\) 个位置 \(0\) 的数量增加 \(1\) 的转移为有用转移。

这下就比较好处理了。

\(f_{i}\) 为前 \(m\) 个数中有 \(i\)\(0\) 的期望步数,则进行一次有用转移的期望步数为 \(\frac{\binom{n}{2}}{(m - i)^2}\)

\(f_{i} = f_{i + 1} + \frac{\binom{n}{2}}{(m - i)^2}\)。边界为 \(f_m = 0\)

这里推一下期望步数:

由最基础的定义,记 \(f_{i + 1} \to f_{i}\) 期望步数: (由目标状态倒推)

\[S = \frac{(m - i)^2}{\binom{n}{2}}\sum\limits_{k = 0} ^{\infty}\left(\frac{\binom{n}{2} - (m - i)^2}{\binom{n}{2}} \right)^{k}(k + 1) \]

意义为:多走 \(k\) 步无用转移后再走一步有用转移的所有概率乘步数的和。

令:

\[a = \frac{(m - i)^2}{\binom{n}{2}}, c = \frac{\binom{n}{2} - (m - i)^2}{\binom{n}{2}} \]

则:

\[\begin{aligned} S &= a\sum\limits_{k = 0}^{\infty}c^k(k + 1) \\ &= a\left(1 + \sum\limits_{k = 1}^{\infty}c^k(k + 1) \right) \\ &= a\left(1 + \sum\limits_{k = 0}^{\infty}c^{k + 1}(k + 2) \right) \\ &= a\left(1 + c\sum\limits_{k = 0}^{\infty}c^k(k + 2) \right) \\ &= a\left(1 + c \left( \sum\limits_{k = 0}^{\infty}c^k(k + 1) + \sum\limits_{k = 0}^{\infty}c^k \right) \right) \\ &= a\left(1 + c \left( S + \sum\limits_{k = 0}^{\infty}c^k \right) \right) \\ \end{aligned} \]

\(T = \sum\limits_{k = 0}^{\infty}c^k\)

\[\begin{aligned} T &= \sum\limits_{k = 0}^{\infty}c^k \\ &= 1+ \sum\limits_{k = 1}^{\infty}c^k \\ &= 1+ \sum\limits_{k = 0}^{\infty}c^{k + 1} \\ &= 1+ c\sum\limits_{k = 0}^{\infty}c^k \\ &= 1+ cT \\ T &= \frac{1}{1 - c} \end{aligned} \]

回代,得:

\[\begin{aligned} S &= a\left(1 + c \left( S - \frac{1}{c - 1} \right) \right) \\ S &= \frac{a}{(1 - c)^2} \\ &= \frac{\frac{(m - i)^2}{\binom{n}{2}}}{(1 - \frac{\binom{n}{2} - (m - i)^2}{\binom{n}{2}})^2} \\ &= \frac{\binom{n}{2}}{(m - i)^2} \end{aligned} \]

所以:

\[f_{i} = f_{i + 1} + \frac{\binom{n}{2}}{(m - i)^2} \]

这是暴力用期望的定义一次次累加期望步数。

当然有更好想且简便的做法:(正推化简)

\[f_{i} = \frac{(m - i)^2 f_{i + 1} + \left( \binom{n}{2} - (m - i)^2 \right)f_{i}}{\binom{n}{2}} + 1 \]

同样可得。

思考过程中可能会混乱,一定要理清转移方向。

CF1753C code

posted @ 2022-10-25 00:05  Schucking_Sattin  阅读(17)  评论(0)    收藏  举报