首页 > 其他分享 >STL用法总结

STL用法总结

时间:2024-11-27 09:55:25浏览次数:3  
标签:总结 frac 字节 STL pos 用法 int bitset 莫队

bitset

超级好用的东西.由于内存地址是按字节即 byte 寻址,而非比特\(bit\) ,一个 \(bool\) 类型的变量,虽然只能表示 \(0/1\) , 但是也占了 \(1byte\) 的内存。
bitset 就是通过固定的优化,使得一个字节的八个比特能分别储存 \(8\) 位的 \(0/1\)。
对于一个\(4\)字节的 int 变量,在只存 0/1 的意义下,bitset 占用空间只是其 \(\frac{1}{32}\),计算一些信息时,所需时间也是其 \(\frac {1}{32}\)。
函数:

bitset<N> jg;//开一个大小为N的bitset
bitset.set()//全设为1
bitset.reset()//全设为0
jg[pos]//访问第pos位的值(从0开始)
| & >> << //左移右移一定要自己模拟一下
jg._Find_next(pos)//找在pos位后面的第一个1,(不包括pos本身)
jg._Find_first()//找第一个1(从低到高)
jg.none()//是否全是0
jg.all()//是否全是1
jg.any()//是否有1
jg.count()//一的个数
jg.test(pos)//检测pos位是否为1
jg.flip()//反转所有位
jg.flip(pos)//反转pos位
jg.to_ullong()//返回转换为unsigned long long 的结果

应用:
1.bitset配合埃式筛比 \(O(n)\) 更快。

bitset<N> vis;
void ycl()
{
	vis[1]=0;
	for(int i=2;i*i<=n;i++)//后面一定没用
		if(!vis[i])
			for(int j=i*i;j<=n;j+=i)//2*i一定被前面标记了。
				vis[j]=1;
	for(int i=2;i<=n;i++)if(!vis[i])prim[++cnt]=i;
}

2.bitset配合莫队
因为莫队的一次修改是O(1)的与bitset很切合,所以可以在用莫队的同时用bitset,实现一些别的东西。
这道题

3.储存是否存在的DP(如0/1背包)
一个数有没有出现过。(树上)

	for(int i=0;i<len;i++)
	{
		int v=ve[u][i];
		if(v==fa)continue;
		ff=jg<<siz[v];
		jg|=ff;
	} 

标签:总结,frac,字节,STL,pos,用法,int,bitset,莫队
From: https://www.cnblogs.com/storms11/p/18571084

相关文章

  • 11月27日总结
    今天完成看了软件设计的实验内容实验25:访问者模式本次实验属于模仿型实验,通过本次实验学生将掌握以下内容[实验任务一]:打包员在我们课堂上的“购物车”的例子中,增加一个新的访问者:打包员,负责对购物车中货物装包。实验24:模板方法模式[实验任务一]:数据库连接对数据库的操作......
  • 11月20日总结
    今天是周三软件设计和机器学习主要是完成实验本次实验属于模仿型实验,通过本次实验学生将掌握以下内容:1、理解备忘录模式的动机,掌握该模式的结构;2、能够利用备忘录模式解决实际问题。     [实验任务一]:多次撤销改进课堂上的“用户信息操作撤销”实例,使得系......
  • 11月21日总结
    今天是周四,没有课程主要学习了算法DFS(深度优先搜索)本质上是暴力把所有的路径都搜索出来,它运用了回溯,保存这次的位置并深入搜索,都搜索完便回溯回来,搜下一个位置,直到把所有最深位置都搜一遍(找到目的解返回或者全部遍历完返回一个事先定好的值)。要注意的一点是,搜索的时候有记录走过......
  • 11月25日总结
    今天又是周一主要学习了数据流图以及上下文图的画法以及本质1.1数据流图的概念数据流图(DataFlowDiagram,DFD)是一种图形化技术,它描绘信息流和数据从输入移动到输出的过程中所经受的变换。数据流图的优点:在数据流图中没有任何具体的物理元素,它只是描绘信息在软件中流动和被处......
  • 全网首发:香橙派5MAX安装ubuntu20.04(换了官方桌面)及ros,运行LIVOX-mid360混合固态激光雷
    简单介绍这块板子:我这款OrangePi 5 Max采用Rockchip RK3588 8核64位处理器,4个Cortex-A76(主频2.4GHz)、4个Cortex-A55(主频1.8GHz)及独立的NEON协处理器。配备16GB LPDDR5,集成ARM Mali-G610,内置3D GPU。这里在安装ubuntu20.04时,我没用香橙派官方桌面镜像安装的,而是在server......
  • 今日总结
    学习了xxljob相关知识和异步方法相关知识 导入依赖后,配置执行器,然后可以配置任务,在xxljob控制端可以看到,然后在管理端配置执行器绑定相应bean,可以设置对应的任务链,路由策略xxljob分页持久化注意点intindex=XxlJobHelper.getShardIndex();服务索引,从0开始inttotal=XxlJ......
  • 数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undo log、redo log
    数据库(总结自小林coding)|索引失效的场景、慢查询、原因及如何优化?undolog、redolog、binlog作用、MySQL和Redis的区别说一下索引失效的场景?什么是慢查询?原因是什么?可以怎么优化?undolog、redolog、binlog有什么用MySQL和Redis的区别是什么说一下索引失效的场景......
  • 【后端面试总结】MySQL面试总结
    后端的面试中数据库是一个绕不开的话题,而其中事务又是出镜率很高的一个知识点,那么事务又是由哪些关键技术组成呢,总结起来就是4个关键点:ACID原子性:定义:原子性是指一个事务是一个不可分割的工作单位,其中的操作要么都做,要么都不做;如果事务中一个sql语句执行失败,则已执行的语句......
  • 前端Symbol的常见用法
    文章目录前端Symbol介绍及其常见用法一、Symbol函数的创建二、Symbol的常见用法三、Symbol的注意事项前端Symbol介绍及其常见用法Symbol是ES6中新增的一种基本数据类型,它表示独一无二的值。在前端开发中,Symbol具有多种用途,可以用于创建唯一对象属性名、定义对象的......
  • 2024.11.23至26联考总结
    前言因为各种原因,我近几天的总结一直被鸽,直到今天(11.26)已经堆积了三场。然后个人觉得这几天的联考还是很有总结必要,所以就大概复盘一下考试,然后再聊一点题目难度、做法、改题情况以及小小的总结一下。11.23复盘开始考试后先看了T1,第一眼没有看出什么眉目然后看后面三道。看了......