【题解】P12020 CF1033F 加强版

NOT 运算符是骗人的,你给那些位的结果取反一下就好。
考虑 3 进制 XOR-FWT,那么 \(\mathtt{A,O,X}=1\) 限制的就是每位是 \(2,1/2,1\)\(=0\) 限制的就是 \(0/1,0,0/2\)
这样可以做到 \(O(3^{n}n+q2^w)\)

考虑限制每位有两种取值的运算较多时怎么做。
\(f_{i,S}\) 表示第 \(i\) 位限制等于 \(S\),则 \(f_{i,\{0\}}=\frac{1}{2}(f_{i,\{0,1\}}+f_{i,\{0,2\}}-f_{i,\{1,2\}})\),所以可以求 \(g_S\) 表示三进制下每一位都不和 \(S\) 的三进制位相等的方案数,可以通过一次变换求出。
然后这样就有一个 \(q\min(3^{w-k},2^k)\) 的做法了。

posted @ 2026-08-02 18:00  TallBanana  阅读(3)  评论(1)    收藏  举报