当集合的元素数比较少的时候,我们可以使用整数来表示集合(用到整数的二进制)
一些集合运算可以这么写:
for( int S = 0; S < (1<<n); ++S)
{
//对于集合的处理
}
下面的代码根据字典序升序,枚举出所有满足条件的二进制码
int comb = (1<<k) - 1;
while(comb < (1<<n) )
{
//这里进行针对组合的处理
int x = comb & -comb;
int y = comb + x;
comb = (((comb & ~y) / x) >>1 ) | y;
}