bitset 学习笔记
引入
顾名思义, \(\texttt{bitset}\) 是用 \(\texttt{bit}\) 组成的 \(\texttt{set}\);
区别于普通的 \(\texttt{bool []}\) 或 \(\texttt{vector<bool>}\),\(\texttt{bitset}\) 的每一位都用一 \(\text{bit}\) 的内存来存储,而非一 \(\text{byte}\);
故, \(\texttt{bitset}\) 总是用来卡常。
正题
首先一些介绍一些基础用法:
用法
一些初始化
bitset<M> Name:长度为 \(M\) 的 \(\texttt{bitset}\),默认为空。(\(M\) 为常量,下同)bitset<M> Name(N):长度为 \(M\) 的 \(\texttt{bitset}\),初始化为int类型的变量 \(N\) 的二进制。bitset<M> Name(S):长度为 \(M\) 的 \(\texttt{bitset}\),初始化为string类型的 01 字符串 \(S\)。
一些运算符重载
operator [] (int i):返回 \(\texttt{bitset}\) 的第 \(i\) 位,但是从右往左数。operator < (bitset<N> b):返回两 \(\texttt{bitset} 比较的结果\)。operator > (bitset<N> b):同上。operator << (int t)operator >> (int t)operator & (bitset<N> b)operator | (bitset<N> b)operator ~ ()operator ^ (bitset<N> b)
好吧后面的不想写了,自行脑补()
直接例题。
例题
AT_agc020_c
考虑将所有集合的和都存进一个 bitset 里,如果 Bit[i] != 0 那么就代表存在一个集合的和为 \(i\);
那么可以这样写:
Bit[0] = 1;
for (int i = 1; i <= n; i++) {
cin >> tmp;
Bit |= (Bit << tmp);
}
P4306
我们充分发扬人类智慧:
用 bitset 优化 Floyd,\(n^2\) 枚举两点,如果两点联通则将两点可达的所有点取并集。
这样速度快得飞起,在 \(n=2000\) 时都可以在 138ms 内卡过
CF620E
说实话这道题用 bitset 硬往树剖上扣就可以了,不再赘述。
bitset 学习笔记的更多相关文章
- 学习笔记(三)--->《Java 8编程官方参考教程(第9版).pdf》:第十章到十二章学习笔记
回到顶部 注:本文声明事项. 本博文整理者:刘军 本博文出自于: <Java8 编程官方参考教程>一书 声明:1:转载请标注出处.本文不得作为商业活动.若有违本之,则本人不负法律责任.违法 ...
- Day 3 学习笔记
Day 3 学习笔记 STL 模板库 一.结构体 结构体是把你所需要的一些自定义的类型(原类型.实例(:包括函数)的集合)都放到一个变量包里. 然后这个变量包与原先的类型差不多,可以开数组,是一种数据 ...
- OI知识点|NOIP考点|省选考点|教程与学习笔记合集
点亮技能树行动-- 本篇blog按照分类将网上写的OI知识点归纳了一下,然后会附上蒟蒻我的学习笔记或者是我认为写的不错的专题博客qwqwqwq(好吧,其实已经咕咕咕了...) 基础算法 贪心 枚举 分 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- PHP-自定义模板-学习笔记
1. 开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2. 整体架构图 ...
- PHP-会员登录与注册例子解析-学习笔记
1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...
- 2014年暑假c#学习笔记目录
2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...
- JAVA GUI编程学习笔记目录
2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...
- seaJs学习笔记2 – seaJs组建库的使用
原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...
- CSS学习笔记
CSS学习笔记 2016年12月15日整理 CSS基础 Chapter1 在console输入escape("宋体") ENTER 就会出现unicode编码 显示"%u ...
随机推荐
- JS 通过后台接口返回的URL地址下载文件并保存到本地(已在项目中使用,保存音视频文件)
今天做antdV表格勾选下载操作时,因为粗心大意碰到了下载问题,特此记录~ 一.单个文件下载逻辑代码如下: const exportFile = (data, fileName, _this)=> ...
- C#/.NET/.NET Core优秀项目和框架2024年10月简报
前言 公众号每月定期推广和分享的C#/.NET/.NET Core优秀项目和框架(每周至少会推荐两个优秀的项目和框架当然节假日除外),公众号推文中有项目和框架的介绍.功能特点.使用方式以及部分功能截图 ...
- layui laydate日期时间范围,时间默认设定为23:59:59
在Layui中,如果你想设置日期时间选择器(datetime)的默认结束时间为当天的23:59:59,你可以使用如下代码(红色部分): laydate.render({ elem: '#test10' ...
- 《JVM第7课》堆区
1.概念 堆是JVM中最重要的一块区域,JVM规范中规定所有的对象和数组都应该存放在堆中,在执行字节码指令时,会把创建的对象存入堆中,对象的引用地址存入虚拟机栈的栈帧中.不过当方法执行完之后,刚刚所创 ...
- Context的典型使用场景
获取应用文件路径 基类Context提供了获取应用文件路径的能力,ApplicationContext.AbilityStageContext.UIAbilityContext和ExtensionCo ...
- 根据不同的dpi 媒体查询
/* 默认样式 */ .element { width: 100px; height: 100px; background-color: blue; } /* 当设备像素比为1.5时,调整.eleme ...
- 2023NOIP A层联测9 T3 天竺葵
2023NOIP A层联测9 T3 天竺葵 题面及数据范围 Ps:连接为accoderOJ. 看题大概是一个最长上升子序列的带权版本,于是想到 dp. 设 \(dp[i][j]\) 为到第 \(i\) ...
- 洛谷 NOIP 2023 模拟赛 T2 汪了个汪
洛谷 NOIP 2023 模拟赛 T2 汪了个汪 考试建出正解图不知道怎么处理,题解区樱雪喵博客薄纱. 樱雪喵题解链接 Ps:笔者语文爆炸,不建议阅读本文 思路 首先你会发现,一共有 \(\frac{ ...
- Redis中有事务吗?有何不同?
与关系型数据库事务的区别 Redis事务是指将多条命令加入队列,一次批量执行多条命令,每条命令会按顺序执行,事务执行过程中不会被其他客户端发来的命令所打断.也就是说,Redis事务就是一次性.顺序性. ...
- Spring的IOC容器创建过程深入剖析
前言 本次对于Spring的IOC容器的创建过程是基于其源码进行研究分析的,主要涉及BeanFactory的创建过程,Bean的解析与注册过程,Bean实例化的过程以及诸如ClassPathXmlAp ...