「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}
\]
附上一张胡杨爷的手稿
本文来自博客园,作者:xay5421,转载请注明原文链接:https://www.cnblogs.com/xay5421/p/13603675.html