二进制不同位数【牛客tracker 每日一题】

二进制不同位数

时间限制:1秒 空间限制:256M

知识点:位运算

网页链接

牛客tracker

牛客tracker & 每日一题,完成每日打卡,即可获得牛币。获得相应数量的牛币,能在【牛币兑换中心】,换取相应奖品!助力每日有题做,丰盈牛币日益多!

题目描述

给定两个正整数m mmn nn。将它们分别写成二进制串(不含前导0 00),从最低位对齐后进行比较。请计算在所有对应位上二进制数字不同的位数,记为f ( m , n ) f(m,n)f(m,n)

更形式化地,设x = m x=mx=mx o r xorxorn nn,则f ( m , n ) f(m,n)f(m,n)等于x xx的二进制表示中1 11的个数。

输入描述:

在一行上输入两个整数m , n ( 1 ≦ m , n ≦ 10 9 ) m,n(1≦m,n≦10^9)m,n(1m,n109),表示需要比较的两个正整数。

输出描述:

在一行上输出一个整数,表示m mmn nn的二进制表示中不同的位数f ( m , n ) f(m,n)f(m,n)

示例1

输入:

15 8

输出:

3

说明:

在这个样例中,m = 15 m=15m=15的二进制为( 1111 ) 2 (1111)_2(1111)2n = 8 n=8n=8的二进制为( 1000 ) 2 (1000)_2(1000)2
从最低位对齐后比较四个二进制位,有3 33个位置上的数字不同,因此答案为3 33

示例2

输入:

7 10

输出:

3

说明:

在这个样例中,m = 7 m=7m=7的二进制为( 111 ) 2 (111)_2(111)2n = 10 n=10n=10的二进制为( 1010 ) 2 (1010)_2(1010)2
补齐后比较四个二进制位:

解题思路

核心利用异或运算的特性(二进制位相同为0 00、不同为1 11),将问题转化为统计异或结果中1 11的个数;首先读取两个正整数m mmn nn,计算异或值x = m n x = m ^ nx=mnx xx的二进制中1 11的位置恰好对应m mmn nn二进制不同的位;随后采用高效位运算技巧(x & = x − 1 x \& = x-1x&=x1)统计1 11的个数,该操作每次消去x xx最右侧的1 11,循环执行至x xx0 00,统计循环次数即为答案;该方法无需补齐二进制位,时间复杂度仅为O ( l o g ( m a x ( m , n ) ) ) O(log(max(m,n)))O(log(max(m,n)))(与两数二进制位数相关),适配m 、 n ≤ 1 e 9 m、n≤1e9mn1e9的规模,避免了逐位遍历的冗余计算,精准且高效地得到两数二进制不同的位数。

代码内容

#include<bits/stdc++.h>usingnamespacestd;typedeflonglongll;typedefunsignedlonglongull;typedefpair<ll,ll>pii;constll p=1e9+7;constll N=1e5+10;intmain(){ll m,n;cin>>m>>n;ll x=m^n;ll ans=0;while(x!=0){x&=(x-1);ans++;}cout<<ans<<endl;return0;}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1201620.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MAC 怎样加密压缩 zip 包?

Mac上加密压缩ZIP包有三种主流方式:终端命令行(原生免费,无需额外软件)、第三方图形化工具(操作简单,支持更强加密)、以及Ventura及更新系统的Finder扩展(部分用户可用)。以下是详细步骤与对比。 一、终端命令行加密(推荐,原生无依赖) macOS自带zip命令支持加密,…

救命神器10个AI论文写作软件,助本科生轻松搞定毕业论文!

救命神器10个AI论文写作软件&#xff0c;助本科生轻松搞定毕业论文&#xff01; 论文写作的救星&#xff0c;AI 工具如何改变你的学习方式 在当今这个信息爆炸的时代&#xff0c;本科生的学术写作任务变得越来越繁重。无论是课程论文还是毕业论文&#xff0c;都需要大量的时间和…

Pixels 医疗影像一站式解决方案从入门到精通

Pixels 医疗影像一站式解决方案从入门到精通 各位搞医疗影像的小伙伴些&#xff0c;你们有没有遇到过这种尴尬&#xff1a;DICOM 文件堆得到处都是&#xff0c;想找个病例翻半天&#xff0c;数据格式复杂得让人头大&#xff0c;更别说还要做 AI 分析了。莫慌&#xff0c;今天给…

Linux 内存管理中的 Overcommit(过度分配)机制及OOM Killer 的处理逻辑详解

您描述的是 Linux 内存管理中的 Overcommit&#xff08;过度分配&#xff09;机制 及其潜在风险&#xff0c;以及 OOM Killer 的处理逻辑。下面我将这一过程和相关概念系统地梳理一下。 1. 内存分配机制 Linux 内核中&#xff0c;应用程序通过 malloc() 等函数请求内存时&…

MySQL InnoDB Cluster升级到MySQL 8.4.x

MySQL InnoDB Cluster升级到MySQL 8.4.x2026-01-22 20:11 潇湘隐者 阅读(0) 评论(0) 收藏 举报上一篇文章总结了MySQL单实例从MySQL 8.0.35 升级到MySQL 8.4.x版本,这里简单总结一下MySQL InnoDB Cluster的升级到M…

LangGraph MCP Tool Calling Agent:让企业级智能体开发不再头大

LangGraph MCP Tool Calling Agent&#xff1a;让企业级智能体开发不再头大 用 LangGraph 开发复杂的 AI 智能体时&#xff0c;头疼的可能不是代码逻辑处理&#xff0c;而是如何让智能体安全、高效地访问企业内部的数据和工具。这个问题困扰了不少开发者&#xff0c;搞不好还要…

2026年电动刮研刀厂家推荐,提升生产效率与加工精度

在2026年的电动刮研刀市场中,了解正规的刮硏工厂、床身刮研制造商与直销厂家至关重要。这些厂商不仅在技术上不断进步,同时也把客户的需求放在首位。通过深入分析,建议关注它们的生产质量、技术水平和售后服务,以确…

做自媒体3年,终于找到稳定免费图床:CloudFlare-ImgBed实测

90%的博主都不知道!免费100G图床竟比付费的还稳定~ 写文章、做分享时,你是不是也总被图床问题折磨?免费的容量小得可怜,付费的一年要花几百块,更糟的是还常遇到文件失效、大文件传不了的坑,辛苦写的内容全白费!…

Mac Mouse Fix:让几十块的普通鼠标也能拥有丝滑触控板体验

Mac Mouse Fix&#xff1a;让几十块的普通鼠标也能拥有丝滑触控板体验 习惯了 Mac 触控板的丝滑手感&#xff0c;再切回普通鼠标总觉得不得劲儿&#xff0c;滚动生硬卡顿不说&#xff0c;那些好用的手势操作也全没了&#xff0c;搞得人好不安逸。 &#x1f517; Claude Code 国…

数列分块入门学习笔记

分块九讲前言: 本篇主要是作者写完数列分块入门1~9后想写下一篇文章来记录自己的学习的历程,如果有错误的地方可以指出 分块的概念: 其实,分块是一种思想,而不是一种数据结构. 从 NOIP 到 NOI 到 IOI,各种难度的分…

FastScheduler:让 Python 定时任务变得优雅简单

FastScheduler&#xff1a;让 Python 定时任务变得优雅简单 写定时任务这事儿&#xff0c;估计每个 Python 开发者都遇到过。Python 自带的 schedule 库虽然简单&#xff0c;用着确实顺手&#xff0c;但一遇到异步任务、时区处理、失败重试这些高级场景&#xff0c;立马就感觉…

HanaVerse:把本地大模型变成二次元虚拟女友,这才是我们想要的 AI

HanaVerse&#xff1a;把本地大模型变成二次元虚拟女友&#xff0c;这才是我们想要的 AI 说实话&#xff0c;在本地跑大模型确实挺爽的&#xff0c;不用把数据上传到云端&#xff0c;隐私安全有保障&#xff0c;而且还能白嫖各种开源模型。但是吧&#xff0c;每天对着冷冰冰的…

2026年物业管理行业发展核心趋势解析:服务升级与价值重塑

物业管理作为城市治理与居民生活保障的核心环节&#xff0c;其服务质量不仅直接关系到业主的居住体验&#xff0c;更对房产保值增值具有重要影响。当前&#xff0c;国内物业管理行业正处于从传统基础服务向多元化、智能化、专业化转型的关键阶段&#xff0c;行业规模持续扩大&a…

从 0 到 1 认识大模型:核心原理与价值应用指南

在 AI 技术飞速迭代的今天&#xff0c;“大模型” 早已不是专业领域的小众术语&#xff0c;而是渗透到内容创作、智能交互、行业解决方案等多个场景的核心技术。但它究竟是什么&#xff1f;与普通 AI 模型有何本质区别&#xff1f;本文将用通俗的语言拆解大模型的核心概念、发展…

实用指南:spark的静态内存管理机制

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Qt国际化实战指南:使用翻译官实现多语言应用

引言&#xff1a;为什么需要国际化&#xff1f;在当今全球化的软件开发环境中&#xff0c;应用程序往往需要面向不同国家和地区的用户。Qt作为一个跨平台的C框架&#xff0c;提供了完善的国际化&#xff08;i18n&#xff09;支持&#xff0c;允许开发者轻松实现多语言界面。通过…

智能体插件研发应该的技巧

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

Vue3登录注册验证码实战

以下是使用 Vue.js 实现登录、注册和验证码功能的完整代码示例。我将逐步解释关键部分&#xff0c;并提供可运行的 HTML 文件代码。代码使用了 Vue 3 的 Composition API&#xff0c;并模拟了验证码生成&#xff08;真实应用中应通过后端 API 获取验证码&#xff09;。 思路说…

期货飞马柜台系统+超融合:全栈国产,节省超60%硬件成本!

随着金融行业国产化替代的纵深推进&#xff0c;期货行业核心交易系统的国产转型正在从“选择题”变为“必答题”。不过长期以来&#xff0c;期货机构普遍将核心交易系统部署在物理服务器上&#xff0c;在当下硬件成本大幅上涨的现实情况下&#xff0c;对于绝大多数中小期货客户…

一张图看懂无线网络参考模型

在深入研究复杂的无线通信协议之前&#xff0c;我们需要一张“地图”来搞清楚我们在讨论什么。经典的OSI七层模型是我们计算机网络的教科书标准&#xff0c;但在实际的无线网络&#xff08;如Wi-Fi&#xff09;中&#xff0c;我们使用的是一套更为实用、精简的架构。今天我们就…