「题解」Codeforces 449D Jzzhu and Numbers
实际上就是个位运算卷积的背包,只需要每个 \(F_i=x^{a_i}+x^{U}\) 位运算卷积卷起来即可(\(U\) 是全集),如果直接暴力把每个 \(F\) 都卷起来是 GG 的,注意到这个做 FMT 也就是后缀和,所有位置不是 \(1\) 就是 \(2\),或者说只有 \(a_i\) 的前缀是 \(2\),其他都是 \(1\)。
所以 \(\prod FMT(F_i)\) 的每个位置都是一个 \(2\) 的次幂,而指数就是有多少个 \(a_i\) 的前缀包含它。
那么对 \(a\) 开个桶做一个高维后缀和,每个位置就是 \(\prod FMT(F_i)\) 每个位置的指数,求出 \(\prod FMT(F_i)\) 再 \(IFMT\) 回去。