位运算

简介: 复习acwing算法基础课的内容,本篇为讲解基础算法:位运算,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上,本博客所有习题和模板来自:ACWing算法基础课

文章目录

前言

一、位运算习题,模板

1.模板

2.AcWing801. 二进制中1的个数

AC代码

二、时间复杂度

前言

复习acwing算法基础课的内容,本篇为讲解基础算法:位运算,关于时间复杂度:目前博主不太会计算,先鸽了,日后一定补上,本博客所有习题和模板来自:ACWing算法基础课

一、位运算习题,模板

1.模板

本模板来自:ACWing算法基础课

求n的第k位数字: n >> k & 1
返回n的最后一位1:lowbit(n) = n & -n

2.AcWing801. 二进制中1的个数

本题链接:AcWing801. 二进制中1的个数

本博客给出本题截图:

image.png

AC代码

#include <cstdio>
using namespace std;
int lowbit(int x)
{
    return x & -x;
}
int main()
{
    int n;
    scanf("%d", &n);
    while (n -- )
    {
        int a, res = 0;
        scanf("%d", &a);
        while (a)
        {
            a -= lowbit(a); 
            res ++;
        }
        printf("%d ", res);
    }
    return 0;
}

二、时间复杂度

关于位运算的时间复杂度以及证明,后续会给出详细的说明以及证明过程,目前先鸽了。

目录
相关文章
|
4月前
玩转位运算
玩转位运算
|
7月前
|
存储 Java
一篇搞定位运算(&、|、^、~、>>、<<、>>>)
我们最了解的就是十进制 , 除了十进制 , 还有二进制 , 六进制 , 八进制等等 , 由于位运算操作就是二进制 , 所以我们主要来说一下二进制 , 十进制的个位有(0~9)这几个数字 , 而二进制也相同 , 二进制的个位上只有0和1
32 0
|
9月前
|
算法 Java 编译器
第 13 天_位运算
第 13 天_位运算
60 0
|
9月前
位运算专题(个人理解)
位运算专题(个人理解)
44 0
|
10月前
|
算法 数据安全/隐私保护
基本的位运算
基本的位运算
|
10月前
|
算法
位运算能做什么
位运算能做什么
38 0
|
11月前
|
存储 Java 程序员
“高端”的位运算
大家好,我是王有志。原计划迭代作为预备知识的收尾,不过在解2的幂和4的幂时,想到关于数字2的问题可以通过位运算去解决,因此补充了关于位运算的内容。
60 1
|
12月前
位运算(1)
位运算(1)
|
存储
【位运算】怕位运算?有我你何足畏惧
【位运算】怕位运算?有我你何足畏惧
57 0