CF2020E 做题记录
CF2020E 做题记录
一句话题意:给你一个数组 \(a\) 和概率数组 \(p\),对于每个 \(a_i\) 都有 \(\dfrac{p_i}{10^4}\) 的概率被插入多重集合 \(S\) 中。求 \(S\) 中所有元素的异或值的期望。
将数拆位,可以得到:
\[\mathbb{E}(f(s)^2)=\mathbb{E}(\sum_{i=1}^N\sum_{j=1}^N \text{bit}_i\text{bit}_j\times2^{i+j})
\]
其中 \(\text{bit}_x\) 表示 \(f(S)\) 的第 \(x\) 位。
将上述式子继续化简:
\[\mathbb{E}(f(s)^2)=\sum_{i=1}^N\sum_{j=1}^N \mathbb{E}(\text{bit}_i\text{bit}_j)\times2^{i+j}
\]
于是我们枚举所有的 \(i\) 和 \(j\),计算贡献即可。
定义 \(f_{x,y,z}\) 表示从 \(1\) 到 \(x\) 中加数,第 \(i\) 位是 \(y\),第 \(j\) 位是 \(z\) 的概率。
考虑转移:
\[f_{x,y\oplus g(x,i),z \oplus g(x,j)}\gets p_if_{x-1,y,z}
\\
f_{x,y,z}\gets (1-p_i)f_{x-1,y,z}
\]
若 \(\text{bit}_i\) 或 \(\text{bit}_j\) 中有 \(0\),则显然 \(\mathbb{E}(\text{bit}_i\text{bit}_j)\) 为 \(0\),因此我们统计答案的时候加上 \(f_{n,1,1} \times 2^{i+j}\) 即可。
做完了,第一维滚不滚无所谓。

浙公网安备 33010602011771号