bitset常用函数

bitset常用函数

什么是bitset

bitset存储二进制数位。

bitset中的一个元素一般只占1 bit。

bitset中的每个元素都能单独被访问,整数类型和布尔数组都能转化成bitset。

bitset的大小在编译时就需要确定。如果你想要不确定长度的bitset,请使用vector容器。

所以bitset优化的题的复杂度要除一个位数,通常为32

卡常专用.jpg

如何定义bitset

需要一行头文件

#include <bitset>

定义bitset

bitset<4>a;//4是长度
//a= 0000

bitset<4>b(string("1111"))

//a=1111

bitset可以进行与(&)、或(|)、异或(^)、左移(<<)、右移(>>)等操作。

bitset常用函数

.size() 返回大小(位数)
.count() 返回1的个数
.any() 返回是否有1
.none() 返回是否没有1
.set() 全都变成1
.set(p) 将第p + 1位变成1
.set(p, x) 将第p + 1位变成x
.reset() 全都变成0
.reset(p) 将第p + 1位变成0
.flip() 全都取反
.flip(p) 将第p + 1位取反
.test(i) 第i位是否是1

最后

你就可以去做题了

比如一道入门题,bitset优化Floyd传递闭包

 [JSOI2010]连通数

posted @ 2018-08-18 23:22  wlzs1432  阅读(736)  评论(0编辑  收藏  举报