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

AcWing 801:二进制中 1 的个数 ← lowbit 等三种算法

【题目来源】
https://www.acwing.com/problem/content/803/

【题目描述】
给定一个长度为 n 的数列,请你求出数列中每个数的二进制表示中 1 的个数。

【输入格式】
第一行包含整数 n。
第二行包含 n 个整数,表示整个数列。​​​​​​​

【输出格式】
共一行,包含 n 个整数,其中的第 i 个数表示数列中的第 i 个数的二进制表示中 1 的个数。​​​​​​​

【输入样例】
5
1 2 3 4 5​​​​​​​

【输出样例】
1 1 2 1 2​​​​​​​

【数据范围】
1≤n≤100000,
0≤数列中元素的值≤10^9​​​​​​​

【算法分析】
● 短除法是一种用于整数除法的简便算法,尤其适用于进制转换。它的核心思想是“除基取余,倒序排列”。
● 位运算法。基于“>>=”、“&”等位运算操作,进行统计。
● lowbit(x)=x & (-x),返回整数的二进制表示中最低位 1 所对应的十进制数

【算法代码一:模拟短除法
短除法是一种用于整数除法的简便算法,尤其适用于进制转换。它的核心思想是“除基取余,倒序排列”。

#include <bits/stdc++.h>
using namespace std;int main() {int n,x,cnt;cin>>n;while(n--) {cnt=0;cin>>x;while(x) {if(x%2==1) cnt++;x/=2;}cout<<cnt<<" ";}return 0;
}/*
in:
5
1 2 3 4 5out:
1 1 2 1 2
*/

【算法代码二:位运算法
基于“>>=”、“&”等位运算操作,进行统计。

#include <bits/stdc++.h>
using namespace std;int main() {int n,x,cnt;cin>>n;while(n--) {cnt=0;cin>>x;while(x) {if(x&1) cnt++;x>>=1;}cout<<cnt<<" ";}return 0;
}/*
in:
5
1 2 3 4 5out:
1 1 2 1 2
*/

【算法代码三:lowbit
lowbit(x)=x & (-x) 返回整数的二进制表示中最低位 1 所对应的十进制数。
例如,lowbit(1101000) 返回 8。

#include <bits/stdc++.h>
using namespace std;int lowbit(int x) {return x&(-x);
}int main() {int n,x,cnt;cin>>n;while(n--) {cnt=0;cin>>x;while(x) {cnt++;x-=lowbit(x);}cout<<cnt<<" ";}return 0;
}/*
in:
5
1 2 3 4 5out:
1 1 2 1 2
*/






【参考文献】
https://www.acwing.com/solution/content/183323/
https://www.acwing.com/solution/content/2370/




 

http://www.jsqmd.com/news/95081/

相关文章:

  • uv 安装与配置
  • 5分钟掌握ColorUI:让移动端开发效率提升3倍的完整指南
  • 求各位大佬帮忙做个Multisim仿真,有偿
  • 131_尚硅谷_函数课堂练习题和作业
  • NS模拟器一站式管理工具:ns-emu-tools 快速上手指南
  • Windows右键菜单终极清理指南
  • PyTorch安装教程GPU版:基于CUDA基础镜像的全流程配置说明
  • MTKClient实战指南:掌握联发科芯片调试的终极利器
  • 第七章-命令
  • 05-Qwen3的嵌入模型和langchain的整合
  • 【详解】Hydra安装Libssh模块
  • python训练营打卡DAY13
  • 【一句话概述】Webpack、Vite、Rollup 核心区别
  • Windows驱动管理终极指南:Driver Store Explorer高效使用手册
  • 小米运动步数自动同步:2025年免费刷步数完整教程
  • 小米运动步数自动同步:2025年免费刷步数完整教程
  • Daihatsu Key Programming Made Easy: Lonsdor K518 Pro FCV License Activation for Shops Owners
  • 【关于Java的泛型(基础)】 - 教程
  • 计算机毕设之基于hadoop的好大夫数据大屏可视化分析系统
  • 3分钟搞定视频色彩优化:LosslessCut让你的视频瞬间变专业
  • 付费墙绕过工具终极指南:5步轻松解锁优质内容
  • FLUX.1-dev提示词工程优化:提升概念组合与构图准确率
  • Isuzu Key Programming: Lonsdor K518 Pro FCV License Activation for European/American Shops Owners
  • 如何高效管理Windows驱动程序?Driver Store Explorer完整使用指南
  • Mamba: Linear-Time Sequence Modeling with Selective State Spaces 译读笔记 - 实践
  • 導出知乎收藏夾
  • 繞過 15 歲的高牆
  • 浏览器串口工具革命:零安装体验硬件调试新时代
  • 繞過 15 歲的高牆
  • Zepp Life自动刷步终极指南:3分钟搞定微信支付宝同步