当前位置: 首页 > news >正文

AcWing 801. 二进制中1的个数

题目来源:

找不到页面 - AcWing

代码实现:

#include<iostream>
using namespace std;
int lowbit(int x){
    return x&(-x);
}
int main(){
    int n;
    cin>>n;
    while(n--){
        int x;
        cin>>x;

        int res=0;
        while(x) x-=lowbit(x),res++;

        cout<<res<<' ';
    }
    return 0;
}

题目心得:

  1. (lowbit) O(nlogn)

    使用lowbit操作,进行,每次lowbit操作截取一个数字最后一个1后面的所有位,每次减去lowbit得到的数字,直到数字减到0,就得到了最终1的个数,
    lowbit原理

  2. 根据计算机负数表示的特点,如一个数字原码是10001000,他的负数表示形势是补码,就是反码+1,反码是01110111,加一则是01111000,二者按位与得到了1000,就是我们想要的lowbit操作

http://www.dtcms.com/a/20990.html

相关文章:

  • kamailio常见问题解答
  • 1-16 tortoiseGit分支与Git操作
  • Windows逆向工程入门之栈指令与核心机制深度解析
  • 什么是原型?
  • Yolov5算法原理
  • 15.1 Process(进程)类
  • 基于 energy (lcl v3.0) 跨平台GUI框架实现的 XTA SDK GUI 源码实现
  • 考研操作系统-----外存文件
  • MATLAB图像处理:图像分割方法
  • 使用conda update python将python3.6更新到python3.7版本出现bug:
  • 计算机组成原理第二章
  • 如何将ubuntu下的一个目录,保存目录结构为一个git仓库并上传
  • Python大数据可视化:基于大数据技术的共享单车数据分析与辅助管理系统_flask+hadoop+spider
  • docker部署dify结合deepseek构建知识库
  • three.js+WebGL踩坑经验合集(8.1):用于解决z-fighting叠面问题的polygonOffset远没我们想象中那么简单
  • 基于2025Python电商商品评论数据采集与分析可视化系统
  • IT : 是工作還是嗜好? Delphi 30周年快乐!
  • 【Java】分布式锁Redis和Redisson
  • c++ gcc工具链
  • 缓存穿透、缓存击穿、缓存雪崩的区别与解决方案
  • 2025年-G4-Lc78--121. 买卖股票的最佳时机--(java版)
  • Blazor-设置组件焦点
  • Fisco-Bcos单群组区块链部署
  • Yuque-DL:一款强大的语雀资源下载工具
  • 003 注释
  • Chrome插件开发流程
  • 机试刷题_字符串的排列【python】
  • 【EDA学习】嘉立创题库
  • GDC2025 | DeepSeek-Qwen 模型蒸馏极限挑战赛,来了!(预赛报名)
  • C++:dfs习题四则