取石子 II [期望]

II取石子 II

取石子 II [期望]
取石子 II [期望]


\color{red}{正解部分}

取石子 11 传送门 .

点开传送门, 根据期望的线性, 答案可以当做每堆石子被取的期望次数和,
又因为 aia_ia1a_1 两堆石子是相互独立的, 因此可以单独计算贡献,

现在计算 aia_i, a1a_1 两堆石子的贡献,
(a1,ai)(a_1, a_i) 看做平面直角坐标系中的一个点,
从这个点出发 向左, 向下 进行随机游走, 当走到坐标轴时, 停止产生贡献,
接下来分情况讨论贡献,

  • 走到 (a,0)(a, 0) 对答案的贡献为 aia_i, 概率为 j=0ai1(ai+j1j)12ai+j\sum\limits_{j=0}^{a_i-1} \begin{pmatrix} a_i+j-1\\ j \end{pmatrix} \frac{1}{2^{a_i+j}}
  • 走到 (0,a)(0, a) 对答案的贡献为 aiaa_i-a, 概率为 j=0ai1(a1+j1a11)12a1+j\sum\limits_{j=0}^{a_i-1} \begin{pmatrix} a_1+j-1 \\ a_1-1 \end{pmatrix} \frac{1}{2^{a_1+j}}

为了保证复杂度, 将走到 (a,0)(a, 0) 的概率换为 j=0ai1(1(a1+j1a11)12a1+j)\sum\limits_{j=0}^{a_i-1} (1 - \begin{pmatrix} a_1+j-1 \\ a_1-1 \end{pmatrix} \frac{1}{2^{a_1+j}}) .

则总期望贡献为 j=0ai1ai(1(a1+j1a11)12a1+j)+j=0ai1j(a1+j1a11)12a1+j\sum\limits_{j=0}^{a_i-1} a_i (1 - \begin{pmatrix} a_1+j-1 \\ a_1-1 \end{pmatrix} \frac{1}{2^{a_1+j}}) + \sum\limits_{j=0}^{a_i-1}j \begin{pmatrix} a_1+j-1 \\ a_1-1 \end{pmatrix} \frac{1}{2^{a_1+j}}

可以提前预处理出 ai[1,5×105]a_i \in [1, 5\times 10^5] 的期望贡献, 之后 O(N)O(N) 计算即可 .


代码咕掉了.