https://www.zybuluo.com/ysner/note/1327705
原理
(bitset)的原理是将一大堆值为(0/1)的数压成一个数。
操作
- 通过(i>>x)等操作,我们可以快速访问(i)数组右移(x)位后的状态(即只剩右数(n-x)个值)。
- (bitset)数组可以当作一个数来看待并进行>>,<<,&,^等操作(详见高斯消元总结)。
函数
-
(b.any()):(b)中是否存在置为(1)的二进制位
-
(b.none()):(b)中不存在置为(1)的二进制位吗
-
(b.count()):(b)中置为(1)的二进制位的个数
-
(b.size()):(b)中二进制位的个数
-
(b[pos]):访问(b)中在(pos)处的二进制位
-
(b.test(pos)):(b)中在(pos)处的二进制位是否为1
-
(b.set()):把(b)中所有二进制位都置为(1)
-
(b.set(pos)):把(b)中在(pos)处的二进制位置为(1)
-
(b.reset()):把(b)中所有二进制位都置为(0)
-
(b.reset(pos)):把(b)中在(pos)处的二进制位置为(0)
-
(b.flip()):把(b)中所有二进制位逐位取反
-
(b.flip(pos)):把(b)中在(pos)处的二进制位取反