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]连通数

转载于:https://www.cnblogs.com/wlzs1432/p/9499243.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值