bitsetbitsetbitset是一个类似于bool数组的结构,可以看作一个有多位的二进制数,支持位运算操作,在状压DP等题目中可以使用。用bitsetbitsetbitset可以大大降低常数。
头文件
#include<bitset>
定义
bitset<1005>f;
表示一个100510051005位的二进制数,<>中为位数
位运算操作符
~,&,|,^,<<,>>均可使用,得到的还是nnn位的。
使用==,!=时要保证两边的bitsetbitsetbitset位数相同
其他操作
| 用法 | 作用 |
|---|---|
| f[i] | 调用fff的第kkk位,可以取值或赋值 |
| f.count() | 返回fff中有多少个1 |
| f.set() | 把fff中所有位变成1 |
| f.set(k) | 把fff中第kkk位变成1 |
| f.reset() | 把fff中所有位变成0 |
| f.reset(k) | 把fff中第kkk位变成0 |
| f.flip() | 把fff中所有位取反 |
| f.flip(k) | 把fff中第kkk位取反 |
1万+

被折叠的 条评论
为什么被折叠?



