「CF923E Perpetual Subtraction」 - 有理函数展开

初始时,黑板上有一个正整数 \(n\) ,初始为 \(i\) 的概率是 \(p_i\) 。每一轮执行以下操作:

  • \([0,n]\) 内随机选取一个正整数 \(p\)

  • \(n\) 擦掉,替换成 \(p\)

给定 \(m\) , 对每个 \(i\in[0,n]\)\(m\) 轮之后这个数为 \(i\) 的概率。

\(1\le n\le 10^5,1\le m\le 10^{18}\)

考虑一个位置 i 对位置 j 的贡献,推一推

\[F_j=\sum_i\frac{p_i}i[x^{m-1}]\prod_{k=j}^i\frac 1{1-\frac xk} \]

考虑怎么快速的算右边的东东,先说点前置的知识

对于一些互不相同的 \(\rho_i\),存在 \(a_i\) 满足

\[\frac 1{\prod_{i=1}^k(1-\rho_ix)}=\sum_{i=1}^k\frac{a_i}{1-\rho_ix} \]

hy 说只要下面比上面次数大都可以(?)

同时乘上左边分母

\[1=\sum_{i=1}^ka_i\prod_{j\neq i}(1-\rho_jx) \]

代入 \(x=\frac 1{\rho_i}\)

\[a_i=\frac 1{\prod_{j\neq i}(1-\frac{\rho_j}{\rho_i})} \]

然后对于这个式子的第 n 项

\[\begin{aligned} \left[x^n\right]\prod_{i=1}^k\frac 1{1-\rho_ix}&=[x^n]\sum_{i=1}^k\frac{a_i}{1-\rho_i x}\\ &=\sum_{i=1}^ka_i\rho_i^n\\ &=\sum_{i=1}^k\frac{\rho_i^n}{\prod_{j\neq i}\left(1-\frac{\rho j}{\rho i}\right)}\\ &=\sum_{i=1}^k\frac{\rho_i^{n+k-1}}{\prod_{j\neq i}(\rho_i-\rho_j)} \end{aligned} \]

有了前置知识后,我们考虑如何求出这个东东:

\[\begin{aligned} \left[x^{m-1}\right]\prod_{k=j}^i\frac 1{1-\frac xk}&=\sum_{k=j}^i\frac{(\frac 1k)^{m-1+i-j+1-1}}{\prod_{t\neq k,j\le t\le i}(\frac 1k-\frac 1t)}\\ &=\sum_{k=j}^i\frac{(\prod_{t\neq k,j\le t\le i}t)(\frac 1k)^{m-1}}{\prod_{t\neq k,j\le t\le i}(t-k)}\\ &=\sum_{k=j}^i\frac{i!}{(j-1)!}\frac{(\frac 1k)^m}{(k-j)!(i-k)!(-1)^{k-j}} \end{aligned} \]

于是

\[\begin{aligned} F_j&=\sum_i\frac{p_i}i[x^{m-1}]\prod_{k=j}^i\frac 1{1-\frac xk}\\ &=\frac 1{(j-1)!}\sum_{k=j}^n\frac{(-1)^{k-j}}{(k-j)!k^m}\sum_{i=k}^n\frac{p_i(i-1)!}{(i-k)!} \end{aligned} \]

附上一张胡杨爷的手稿

posted @ 2020-09-02 19:42  xay5421  阅读(319)  评论(1编辑  收藏  举报