AGC034F
AGC034F
给定一个 \(n\) 和长度为 \(2^n\) 的数组 \(A\)
初始有一个为 \(0\) 的变量 \(x\),每次以 \(\frac{A_i}{\sum A_j}\) 的概率使其异或 \(i\)
对于 \(i\in [0,2^n)\) 求 \(x\) 第一次变为 \(i\) 的期望步数。
\(\rm Sol:\)
我们先列出高斯消元的方程,然后考虑集合幂级数:
\[\begin{aligned}
&f_i = 1+\sum_{j\oplus k=i} f_j\cdot p_k
\\& \textrm{FWT}(F(x))=\textrm{FWT}(\sum_k x^k)+ \textrm{FWT}(F(x))\cdot \textrm{FWT}(P(x))+\textrm{FWT}(c)
\\& \textrm{FWT}(F(x))_i=\textrm{FWT}(G(x))_i+\textrm{FWT}(F(x))_i\cdot \textrm{FWT}(P(x))_i+c
\end{aligned}\]
我们先考虑求出具体的 \(c\),考虑 \(f_i\) 的取值,应该有:
\[\textrm{FWT}(F(x))_i=\frac{\textrm{FWT}(G(x))_i+c}{1-\textrm{FWT}(P(x))_i}
\]
然后我们考虑 \(i=0\) 时,此时 \(\textrm{FWT}(P(x))_0=\sum p_i=1\),所以此时有 \(\textrm{FWT}(F(x))_0\cdot 0=\textrm{FWT}(G(x))_0+c\)
于是有:
\[c=-\textrm{FWT}(G(x))_0=-2^n
\]
于是对于 \(i\ne 0\) 的部分,我们有:
\[\textrm{FWT}(F(x))_i=\frac{-2^n}{1-\textrm{FWT}(P(x))_i}
\]
我们进行暴力集合幂级数求逆,对于 \(i=0\) 的部分,利用定义式导出恒等式求解即可。
复杂度为 \(\mathcal O((n+\log w)\cdot 2^n)\)