二进制集合操作
参考
- oi wiki
基础
一个整数的二进制可以看作是一个集合(0表示在,1表示不在),但是该集合中元素的数目有限
n-1
一个数n,n-1表示:将最低位1删除,且后续的所有0变为1
快速判断一个数是否为2的非负整数幂
1 | |
子集遍历
1 | |
在掩码中减去1,等价于删除掩码m中的最后一位1,并将之后的所有0变为1。为了使m-1变为新的掩码,需要删除掩码中的额外的1,可以使用位运算(m-1)&n进行
特殊情况是m==0,在执行m-1后变为-1,其所有位均为1,因此会无限循环
二进制集合操作
http://example.com/2024/09/17/算法刷题/二进制集合操作/