位运算

简介: 复习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;
}

二、时间复杂度

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

目录
相关文章
|
9月前
玩转位运算
玩转位运算
|
存储 Java
一篇搞定位运算(&、|、^、~、>>、<<、>>>)
我们最了解的就是十进制 , 除了十进制 , 还有二进制 , 六进制 , 八进制等等 , 由于位运算操作就是二进制 , 所以我们主要来说一下二进制 , 十进制的个位有(0~9)这几个数字 , 而二进制也相同 , 二进制的个位上只有0和1
76 0
|
4月前
|
机器学习/深度学习
位运算详解
本文介绍了位运算符及其基本操作,并通过几个例题详细解析了位运算的应用。内容包括左移`&lt;&lt;`、右移`&gt;&gt;`、按位取反`~`、与运算`&`、或运算`|`和异或运算`^`等运算符的使用方法。基本操作部分展示了如何检查和修改二进制位,以及异或运算的性质。例题部分则通过判定字符是否唯一、丢失的数字、两整数之和和消失的两个数字等问题,具体说明了位运算的实际应用技巧。
86 7
位运算详解
|
9月前
|
C++
位运算
位运算“【5月更文挑战第23天】”
50 1
|
8月前
|
编译器 Linux C++
详细解读C++中的位运算总结
详细解读C++中的位运算总结
43 0
|
8月前
|
机器学习/深度学习
常见位运算的总结
常见位运算的总结
68 0
|
存储 Java 程序员
“高端”的位运算
大家好,我是王有志。原计划迭代作为预备知识的收尾,不过在解2的幂和4的幂时,想到关于数字2的问题可以通过位运算去解决,因此补充了关于位运算的内容。
108 1
|
算法 Java 编译器
第 13 天_位运算
第 13 天_位运算
101 0
|
算法 数据安全/隐私保护
基本的位运算
基本的位运算
|
存储
位运算及A+B
位运算及A+B
112 0