一个数据范围最大为2^n-1^
###例如
现在有一个数字5=B(0101)
它的所有子集为B(0000),B(0001),B(0100),B(0101)
for(int i=0;i<m;++i){
int x;
cin>>x;
f[x]++;
}
for(int j = 0; j < n; j++)
for(int i = 0; i < 1 << n; i++)
if(i >> j & 1) f[i] += f[i ^ (1 << j)];
当我们需要出现5的所有子集的时候
ans=f[5];
或者我们需要求解二进制状态下与5有1的位置都不相交的子集
x=1<<n-1;
ans=f[5^x];