集合的二进制表示

来源:互联网 发布:浏览器向后端提交数据 编辑:程序博客网 时间:2024/06/11 22:53

简单表示

集合S 去除一个元素{i} S/{i} S&(~1<< i)

特殊集合枚举

{0,1,2,3,n1}所包含的特定大小为 k 的子集

int comb = (1<<k)-1;while(comb < (1<<n)){    int x = comb & -comb,y = comb+x;    comb = ((comb&~y) / x>>1 ) |y;}
0 0