CF Round #751 (Div. 1) A-E Sol
A:给定序列 $a_{1\cdots n}$,称一个值 $1\leq k\leq n$ 是可行的当且仅当若干次选择恰好 $k$ 个序列里的值并消去它们二进制下的公共部分可以使得序列变为全 $0$,求所有可行的 $k$.
$1\leq n\leq 2\times 10^5$,$0\leq a_i<2^{30}$.
考虑每一位是独立的,设二进制下第 $i$ 位为 $1$ 的有 $c_i$ 个,则答案为非零的 $\gcd\{c_i\}$ 的所有因子.
因为显然每一步只能消掉恰好 $0$ 或 $k$ 个第 $i$ 位上的 $1$,只有 $k|c_i$ 才能恰好消完