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

关于bitset的更多相关文章

  1. strtok源码 bitset 空间压缩

    源代码里有一段: unsigned char map[32]; /* Clear control map */ for (count = 0; count < 32; count++) map[ ...

  2. DFS序+线段树+bitset CF 620E New Year Tree(圣诞树)

    题目链接 题意: 一棵以1为根的树,树上每个节点有颜色标记(<=60),有两种操作: 1. 可以把某个节点的子树的节点(包括本身)都改成某种颜色 2. 查询某个节点的子树上(包括本身)有多少个不 ...

  3. 把《c++ primer》读薄(3-3 标准库bitset类型)

    督促读书,总结精华,提炼笔记,抛砖引玉,有不合适的地方,欢迎留言指正. //开头 #include <bitset> using std::bitset; 问题1.标准库bitset类型( ...

  4. BitSet构造函数的两种特例

    C++11之后,bitset的构造函数新加了两种形式: bitset<bits>::bitset (const string& str, string::size_type str ...

  5. Bitset<>用于unordered container时的默认hash函数

    自从c++11起,bitset用于unordered container,将会提供默认的hash函数. 在gcc中,相关代码如下: // DR 1182. /// std::hash speciali ...

  6. hdu 4920 Matrix multiplication bitset优化常数

    Matrix multiplication Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/ ...

  7. hdu 5506 GT and set dfs+bitset优化

    GT and set Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Probl ...

  8. (DFS、bitset)AOJ-0525 Osenbei

    题目地址 简要题意: 给出n行m列的0.1矩阵,每次操作可以将任意一行或一列反转,即这一行或一列中0变为1,1变为0.问通过任意多次这样的变换,最多可以使矩阵中有多少个1. 思路分析: 行数比较小,先 ...

  9. Gym 100917J---Judgement(01背包+bitset)

    题目链接 http://codeforces.com/gym/100917/problem/J Description standard input/outputStatements The jury ...

  10. C++二进制文件中读写bitset

    这个比较简单,直接上代码: bitset< > *b = >(); bitset< > *c = >(); ofstream out("I:\\test. ...

随机推荐

  1. 亲历dataguard的一些经验问答题

    问题1:是否log_archive_dest_n=service中进程使用lgwr时(如log_archive_dest_2='service=DBSTD LGWR SYNC'),备库就一定要建立st ...

  2. BZOJ 3721: PA2014 Final Bazarek【乱搞】

    有n件商品,选出其中的k个,要求它们的总价为奇数,求最大可能的总价. Input 第一行一个整数n(1<=n<=1000000),表示商品数量.接下来一行有n个整数,表示每件商品的价格,范 ...

  3. poj 1579 简单dp由下往上

    #include<stdio.h> #include<string.h> #define N 22 int dp[N][N][N]; int main() { int n,m, ...

  4. Easy sssp(vijos 1053)

    描述 输入数据给出一个有N(2 <= N <= 1,000)个节点,M(M <= 100,000)条边的带权有向图. 要求你写一个程序, 判断这个有向图中是否存在负权回路. 如果从一 ...

  5. 【HDOJ5640】King's Cake(数论)

    题意: 思路: #include<cstdio> #include<cstdlib> #include<iostream> #include<algorith ...

  6. BZOJ 2308 莫队入门经典

    题目链接  https://www.lydsy.com/JudgeOnline/problem.php?id=2038 参考博客 https://www.cnblogs.com/Paul-Guderi ...

  7. Java面试题总结之数据库与SQL语句

    1.有3 个表,表结构如下: Student 学生表(学号,姓名,性别,年龄,组织部门) Course 课程表(编号,课程名称) Sc 选课表(学号,课程编号,成绩).    1)写一个SQL 语句, ...

  8. 简论远程通信(RPC,Webservice,RMI,JMS的区别)

    RPC(Remote Procedure Call Protocol)RPC使用C/S方式,采用http协议,发送请求到服务器,等待服务器返回结果.这个请求包括一个参数集和一个文本集,通常形成“cla ...

  9. linux文件描述符fd(windows下的句柄)

    在Linux系统中一切皆可以看成是文件,文件又可分为:普通文件.目录文件.链接文件和设备文件 fd:file descriptor 文件描述符0,1,2分别给了标准输入.标准输出和错误输出. ls - ...

  10. 【Nginx】如何使用http配置

    处理http配置项可以分为下面4个步骤: 1)创建数据结构用于存储配置项对应的参数 2)设定配置项在nginx.conf中出现时的限制条件与回调方法 3)实现第2步中的回调方法,或者使用Nginx框架 ...