首页 > 其他分享 >bitset

bitset

时间:2024-10-04 13:11:06浏览次数:1  
标签:__ int 个数 二进制 builtin bitset

1.位运算的常见函数
__builtin_popcount(x) //x二进制内1的个数(unsigned int)
__builtin_popcountll(x) //longlong版本
__builtin_parity(x) //二进制下的1的个数的奇偶性
__builtin_parityll(x) //long long版本
__builtin_ctz(x)//x二进制末尾0的个数
__builtin_clz(x)//x二进制开头0的个数
log2(x)=31-__builtin_clz(x);
以上函数的时间复杂度均为o(1)
2.bitset中常见的东西
bitset<1000>a;//长度为1000的bool数组
访问的话必须强转为int类型
比如(int)a[0],(int)a.any(),(int)a.count;
a.any();//判断存不存在至少一个1
a.none();//是不是全都是0
a.count();//统计这里面有几个1
a.set();//把所有数位都变成1
a.set(x);//把第x位变成1
a.reset(x);//把第x位变成0
a.reset();//把所有位变成0
找到第一个1的位置,和下一个1的位置

标签:__,int,个数,二进制,builtin,bitset
From: https://www.cnblogs.com/mendax-Z/p/18446520

相关文章

  • bitset 学习笔记
    bitset有点厉害,必须要学了。介绍bitset可以看成是一个每个位置都是\(0\)或\(1\)的bool数组。与bool数组相比,它的空间复杂度是其\(\frac{1}{32}\),时间复杂度也是\(\frac{1}{32}\),还支持位运算,所以不论是用处还是效率基本薄纱了bool数组。可以作为卡常、压位操作、......
  • P10480 可达性统计(拓扑,bitset 优化)
    link从数的角度来看,如果知道任意一个点能到达的点的数量,那么它的前驱节点一定也能到达,但是,只累加数的话无法处理可能存在重合点的情况。所以,考虑从集合的角度,设\(f(x)\)表示\(x\)能到达的点的集合如果\(x\)有邻点\(y_1,y_2,...,y_k\),那么\(x\)能到达的点就是它的邻点......
  • [namespace hdk] 64位 bitset
    功能已重载运算符[](int)~()+(bitset)+(unsignedlonglong)+=(bitset)+=(unsignedlonglong)>==<>=<=(bitset\unsignedlonglong)<<>>max()min()已定义函数intsize()返回bitset大小intarray_size()返回bitset占用的unsigned_longlong......
  • bitset详解以及用法
    butset详解以及用法bitset是C++标准库中的一个类,它提供了一种方便的方式来操作位序列,常用于位运算和状态压缩。下面我将为您详细介绍bitset的基本概念、基本用法以及一些常用的成员函数。基本概念1、bitset可以看作是一个多位二进制数,其每一位都是0或1。2、它是......
  • bitset专题
    bitsetbitset前身:普通状态压缩的优化以cf937G为例,对于邻接矩阵的由二维压缩到一维#include<bits/stdc++.h>usingi64=longlong;voidsolve(){intn;std::cin>>n;std::vector<std::string>g(n),w(n);for(inti=0;i<n;i++){......
  • C117 莫队配合 bitset P4688 [Ynoi2016] 掉进兔子洞
    视频链接:C117莫队配合bitsetP4688[Ynoi2016]掉进兔子洞_哔哩哔哩_bilibili   LuoguP4688[Ynoi2016]掉进兔子洞//莫队配合bitsetO(n*sqrt(n))#include<iostream>#include<cstring>#include<algorithm>#include<cmath>#include<bitset>usin......
  • C++bitset类型
    bitset类型我们介绍了将整型运算对象当作二进制位集合处理的一些内置运算符。标准库还定义了bitset类,使得位运算的使用更为容易,并且能够处理超过最长整型类型大小的位集合。bitset类定义在头文件bitset中。定义和初始化bitsetbitset类是一个类模板,它类似array类,具有固定的......
  • [算法]分割等和子集算法 & bitset容器应用
    LeetCode416.分割等和子集1题目描述给你一个只包含正整数的非空数组nums。请你判断是否可以将这个数组分割成两个子集,使得两个子集的元素和相等。1.1输入测试示例1:输入:nums=[1,5,11,5]输出:true解释:数组可以分割成[1,5,5]和[11]。示例2:输入:nums=[1,2,3,5]......
  • bitset 相关优化
    bitset基础用法operator[]:访问其特定的一位。operator==/!=:比较两个bitset内容是否完全一样。operator&/&=/|/|=/^/^=/~:进行按位与/或/异或/取反操作。bitset只能与bitset进行位运算,若要和整型进行位运算,要先将整型转换为bitset。operator<>/<<=/>>=:进行......
  • STL-bitset模拟实现
    #include<time.h>#include<string>#include<vector>#include<iostream>usingstd::cout;usingstd::endl;usingstd::string;namespacetest{/**位图概念*所谓位图,就是用每一位来存放某种状态,适用于海量数据,数据无重复的场景。通常是用来判断某个数据存不存在的。......