关于bitset

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)处的二进制位取反

原文地址:https://www.cnblogs.com/yanshannan/p/9880489.html