二进制

(o(n))求出(1sim n)中每个数二进制中(1)的个数
for(int i=1;i<=n;++i) bit[i]=bit[i^(i&(-i))]+1;

枚举(s)的子集
for(int i=s;i;i=(i-1)&s)

原文地址:https://www.cnblogs.com/HZOIDJ123/p/13977852.html