bitset学习笔记

通过 洛谷 P3067 [USACO12OPEN]Balanced Cow Subsets G 这道题超强 bitset 卡常,知道了 bitset 的重要性,趁刚刚学习 bitset ,这里写一点用法。

感觉 bitset 像是一个更多元的 bool 数组,这边给出一些 bitset 的常用函数

w 为计算机位数

bitset<N> s;
s.size()	返回大小(位数)
s.count()	返回1的个数(复杂度为O(N/w))
s.any()		返回是否有1
s.none()	返回是否没有1
s.set()		全部变成1
s.set(p)	将p + 1位变成1(记住,是p+1为,因为bitset从0位开始)
s.set(p,x)	将p + 1为变成x
s.reset()	全部变成0
s.reset(p)	将p + 1位变成0
s.flip()	全部取反
s.flip(p)	将第p + 1为取反
s.to_ulong()	返回它转换为 unsigned long 的结果,超出范围则报错
s.to_ullong()	同上,返回 unsigned long long
s.to_string()	同上,返回 string

部分转载自: https://cmwqf.github.io/

posted @ 2021-12-04 21:42  Mercury_City  阅读(78)  评论(0编辑  收藏  举报