做题记录 25.5.21

\(\textcolor{purple}\odot\) CF1906K Deck-Building Game

答案为 \(\sum_{S\subseteq \{1,2,\cdots,n\}}[\bigoplus_{u\in S}a_u=0]2^{|S|}\)

定义 \(x^p\times x^q=x^{p\oplus q}\),则答案等于 \([x^0]\prod_{i=1}^n (1+2x^{a_i})\)

\(\text{FWT}\) 表示异或时的变换,则答案为

\[[x^0]\text{IFWT}\left(\text{times}_{i=1}^n \text{FWT}(1+2x^{a_i})\right) \]

此处的 \(\text{times}\) 表示两个多项式系数逐位相乘

\(G=\text{times}_{i=1}^n \text{FWT}(1+2x^{a_i})\),考虑如何求出 \(G\)

由于 \([x^i]\text{FWT}(F)=\sum_{j}(-1)^{\text{popcount}(i\cap j)}F_j\),因此 \([x^u]\text{FWT}(1+2x^{a_i})=1+2(-1)^{\text{popcount}(u\cap a_i)}\)

因此

\[[x^u]G=\prod_{i=1}^n (1+2(-1)^{\text{popcount}(u\cap a_i)}) \]

\([x^u]C=\sum_{i=1}^n [\text{popcount}(u\cap a_i)\equiv 1\pmod 2]\),则 \([x^u]G=(-1)^{[x^u]C}3^{n-[x^u]C}\),问题转化为求出 \(C\)

令 $[xu]F=\sum_{i=1}n (1+2(-1)^{\text{popcount}(u\cap a_i)}) $,则 \([x^u]F=-[x^u]C+3(n-[x^u]C)\),即 \([x^u]C=\frac14(3n-[x^u]F)\),考虑如何求出 \(F\)

发现 \(F=\sum_{i=1}^n \text{FWT}(1+2x^{a_i})=\text{FWT}(\sum_{i=1}^n(1+2x^{a_i}))\),容易 \(O(n+V\log V)\) 求出

总时间复杂度 \(O(n+V\log V)\)

代码

参考

posted @ 2025-05-22 07:23  Hstry  阅读(9)  评论(0)    收藏  举报