Loading

agc034f

本关考验你的哈集幂功夫!
\(a_i=\frac{A_i}{S},g=f\oplus a\)。按照题目给的定义是列不出式子的,但是从 \(0\)\(x\) 的期望时间等于 \(x\)\(0\) 的期望时间,有:\(\begin{cases}f_i=0, &i=0 \\ f_i=\sum\limits_{x\oplus y=i}f_xa_y+1, & i\neq 0\end{cases}\)。这个东西看起来很像 FWT,有 \(f_i-1=g_i\),但问题出在 \(i=0\) 时这个不成立。
由于 \(\sum a_i=1\),则 \(\sum f_i=\sum g_i\),有 \(g_0=\sum f_i-\sum\limits_{i\neq 0}g_i=\sum\limits_{i\neq 0}f_i-g_i=2^n-1\)。但是,\(g\) 的式子里面依然有 \(f_i\),没法直接求逆。考虑使 \(a_0\)\(1\)\(g_i\) 就会减去 \(f_i\),又因为 \(f_0=0\),所以这样 \(g\) 就与 \(f\) 无关了,可以进行 FWT 求逆。
这样就做完了……吗?根据异或 FWT 的定义,\(FWT(a)_0=\sum a_i\),因为前面使 \(a_0\)\(1\),则 \(FWT(a)_0=0\),得到 \(FWT(f)_0\times 0=FWT(g)_0\),就无法求出 \(FWT(f)_0\) 的值了。随便给 \(FWT(f)_0\) 赋一个值 \(x\),设 \(x-FWT(f)_0=x'\),则 IFWT 后得到的每个 \(f_i\) 比它的真实值大 \(\frac{x'}{2^n}\),根据 \(f_0=0\) 可以还原 \(f_i\) 的真实值。

posted @ 2025-08-26 21:52  AsiraeM  阅读(9)  评论(0)    收藏  举报