很巧妙的题,显然子集卷积很傻。
$cnt[i]$为二进制$1$的数量
- $i\&j!=0,cnt[i]+cnt[j]>cnt[i|j]$
- $i\&j=0,cnt[i]+cnt[j]=cnt[i|j]$
构造$a[i]=a_i\times 4^{cnt[i]},b[i]=b_i\times 4^{cnt[i]}$
$FWTor\rightarrow,c[k]=\sum _{i|j=k,i\& j=0} a_j\times b_i\times 4^{cnt[i]+cnt[j]}$
$c[k]/4^{cnt[k]]}\mod 4$,就只剩下我们需要的部分了。
代码
1 |
|