牛客——xay loves or与 __builtin_popcount的使用
xay loves or
题目描述
登录—专业IT笔试面试备考平台_牛客网

运行思路
题目要求我们计算有多少个正整数 yy 满足条件 x \text{ OR } y = sx OR y=s。这里的“OR”是指按位或运算。为了理解这个问题,我们需要考虑按位或运算的性质。
对于任意两个位 a_iai 和 b_ibi(a_i, b_i \in \{0, 1\}ai,bi∈{0,1}),按位或运算的结果 c_ici 为:
- 如果 a_i = 0ai=0 且 b_i = 0bi=0,那么 c_i = 0ci=0。
- 否则,c_i = 1ci=1。
因此,如果 x \text{ OR } y = sx OR y=s,那么对于 ss 中每一位为 1 的位置,xx 或 yy 在对应位置至少有一个 1;对于 ss 中每一位为 0 的位置,xx 和 yy 在对应位置都必须是 0。
- 对于 ss 中每一位为 0 的位置,如果 xx 在该位置也是 0,则 yy 在该位置也必须是 0,否则无法满足 x \text{ OR } y = sx OR y=s。
- 对于 ss 中每一位为 1 的位置,如果 xx 在该位置是 0,则 yy 在该位置可以是 0 或 1;如果 xx 在该位置是 1,则 yy 在该位置可以是 0 或 1,因为 xx 已经确保了结果位为 1。
运行代码
#include <iostream>
#include <bitset>
#include<math.h>
using namespace std;
int main() {ios::sync_with_stdio(false);cin.tie(nullptr);int x, s;cin >> x >> s;if ((s & x) == x) {cout << int(pow(2, __builtin_popcount(x))) - (x == s) << "\n";} else {cout << 0 << "\n";}return 0;
}
代码思路
-
输入读取:首先,我们读取两个整数
x和s。 -
条件判断:检查
s & x是否等于x。如果s & x != x,说明s中有些位为 0 而x中对应位为 1,这是不可能的,因为x OR y的结果在这些位上必须是 1。因此,直接输出 0。 -
计算符合条件的
y数量:- 如果
s & x == x,说明x中为 1 的位在s中也必须是 1。接下来,我们需要计算s中为 1 而x中为 0 的位的数量。 - 使用
__builtin_popcount(s & ~x)计算这些位的数量。 - 每个这样的位可以自由选择 0 或 1,因此符合条件的
y的数量是2的这些位的数量次方。 - 由于
y必须是正整数,我们需要减去y = 0的情况。当x == s时,y = 0是唯一的情况,因此需要减去 1。
- 如果
__builtin_popcount
函数描述
__builtin_popcount 是 GCC 编译器提供的一组内置函数之一,用于计算一个整数的二进制表示中 1 的个数。具体来说,__builtin_popcount 接受一个无符号整数作为参数,并返回该整数的二进制表示中 1 的个数。
举例:假设有一个整数 x = 5,其二进制表示为 101。调用 __builtin_popcount(5) 将返回 2,因为 101 中有两个 1。
语法:
int __builtin_popcount(unsigned int x);
使用场景
在上述代码中,__builtin_popcount 用于计算 s & ~x 中 1 的个数。具体来说:
~x是x的按位取反。s & ~x表示s中为 1 而x中为 0 的位。__builtin_popcount(s & ~x)计算这些位的数量。
代码示例
#include <iostream>
#include <bitset>int main() {unsigned int x = 5; // 二进制表示为 101unsigned int s = 7; // 二进制表示为 111unsigned int result = s & ~x; // 111 & ~101 = 111 & 010 = 010int count = __builtin_popcount(result); // 010 中有 1 个 1std::cout << "Result: " << std::bitset<8>(result) << ", Count: " << count << std::endl;return 0;
}
输出
Result: 00000010, Count: 1相关文章:
牛客——xay loves or与 __builtin_popcount的使用
xay loves or 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行思路 题目要求我们计算有多少个正整数 yy 满足条件 x \text{ OR } y sx OR ys。这里的“OR”是指按位或运算。为了理解这个问题,我们需要考虑按位或运算的性质。 对于任意两个位 a_iai 和 b_…...
Docker学习和部署ry项目
文章目录 停止Docker重启设置开机自启执行docker ps命令,如果不报错,说明安装启动成功2.然后查看数据卷结果3.查看数据卷详情结果4.查看/var/lib/docker/volumes/html/_data目录可以看到与nginx的html目录内容一样,结果如下:5.进入…...
Linux中设置cd命令后直接显示当前目录下的所有文件
Linux中cd命令后默认是不显示该目录下的文件的,略微不方便。换个环境经常遇到需要重新设置的情况,网上已有很多发帖了,这里主要汇总下比较简单且常见的bash与csh下的设置方法。 实现的本质就是将"cd" 与 "ls"组合起来&am…...
【RTCP】报文学习笔记
在学习中,发现每一篇都只能窥探其中一部分内容。因此学习了多个大神的文章,记录如下: 参考希望_睿智 大神的文章:从零开始精通RTSP之深入理解RTCP协议, 大神对于细节表述非常到位。 read_book/RTP_RTCP /RTP_RTCP协议内容–精选自译.md 大神提供了更多更为详细的信息。 ZL…...
Solidity优质例子(二)物流的增删改查智能合约(附truffle测试)
本合约非常适合新手学习,其包含了基本的增删改查功能以及各个方式的不同之处的总结,本套合约我也编写了truffle测试,学习truffle测试的小伙伴也有福了~ 该合约的主要作用是通过区块链技术实现物流追踪系统的透明化、自动化与防篡改特性&#…...
对android binder的一些疑问及解答
1上层做了那么多封装是否是过度了,难度增加就在于上层的一层层的封装。 最底层直接ioctl和binder驱动交互(单纯c语言实现binder交互) 第一层:IPCThreadState.transatct封装了对驱动的请求和接受 第二层封装用IBinder.h里面…...
主流麦克风阵列有哪些?
麦克风阵列在HiFi音频方案中是非常重要的一种方案。它的重要性主要体现在音质提升、环境适应性、噪声处理和空间感创造等方面。以下是它的核心作用: 1. 高精度的声音捕捉 在HiFi音频解决方案中,清晰而高保真的声音捕捉是至关重要的。麦克风阵列可以通过…...
几个快速压缩图片大小的方法!
几个快速压缩图片大小的方法!在当今这个视觉主导的时代,图片已成为我们日常生活中不可或缺的一部分,它们承载着从壮丽风景到办公文档的各类信息,每个人的电子设备中,往往都保存着海量的图片文件,然而&#…...
怎么避免在pod产生-派生炸弹(Fork Bomb)? k8s(kubernetes)
通过修改kubelet的配置,限制每个pod能用的pid数量即可解决此问题。 kubelet 可以通过设置PodPidsLimit参数来限制每个容器内的进程数量。 1.【kubelet节点】 /var/lib/kubelet/config.yaml文件中添加如下的内容 # 500仅仅是举例 podPidsLimit: 5002.【kubelet节点…...
MySQL中的嵌套查询
1. 嵌套查询的定义 嵌套查询指在一个查询语句的某个部分嵌入一个子查询。 嵌套查询的执行过程遵循“先子查询、后外层查询”的逻辑。首先,子查询执行并返回一个结果集,可能是一个值、一行或多行数据。接着,外层查询使用子查询的结果继续对数…...
win10 提示pl2303hxa已停产,请联系供货商解决方案
1. 下载驱动 需要下载老版的驱动,下载地址:https://www.pcsoft.com.cn/soft/211569.html 选择普通下载 或者从CSDN下载: 2. 安装驱动 下载完成后安装下载好的驱动文件,安装后更新pl2303的驱动,如下:…...
浙大数据结构:07-图5 Saving James Bond - Hard Version
这道题也是很有难度,我最开始尝试用Dijkstra来做,发现不是很好处理,用bfs还不错。 机翻: 1、条件准备 n为鳄鱼数量,jump为跳跃距离,headjump为第一次跳跃距离,包括了岛的半径。 isalive标识…...
【Verilog学习日常】—牛客网刷题—Verilog企业真题—VL69
脉冲同步器(快到慢) 描述 sig_a 是 clka(300M)时钟域的一个单时钟脉冲信号(高电平持续一个时钟clka周期),请设计脉冲同步电路,将sig_a信号同步到时钟域 clkb(100M&…...
电商商品数据采集||高并发||多语言请求实例演示|京东|淘宝商品详情数据SKU价格
以京东商品数据采集为例 京东商品详情接口数据采集是指通过调用京东提供的商品详情API接口,获取商品的详细信息。以下是一个简单的步骤来实现这个功能: 1. 注册京东开发者账号 首先,你需要注册一个京东开发者账号,并创建一个应…...
云手机哪款好用?2024年云手机推荐对比指南
随着云手机市场的快速扩展,消费者在选择云手机时面临着众多选择。为了帮助大家找到最适合自己的云手机,小编特意整理了一份当前市场上几款备受关注的云手机品牌对比,大家一起往下看吧。 1. Ogphone云手机 Ogphone云手机是近年来海外业务版块迅…...
无人机航测内业常用建模软件手册下载(上)
航测项目外业离不开无人机,内业离不开制图软件。 无人机航测外业作业包括控点布设、航线规划、仿地飞行、航拍等流程,而内业数据处理则常涉及到CC、Pix4D、PhotoScan、大疆智图、重建大师、M3D、瞰景Smart3D、天工等软件。 我们整理了这些常用建模软件…...
Python Django ORM 的工作原理
在 Web 开发中,处理数据库是非常常见的需求,尤其是在构建动态应用程序时。Django 作为一个流行的 Python Web 框架,提供了一套强大的工具帮助开发者轻松管理数据库。Django 的 ORM(对象关系映射,Object-Relational Map…...
GoLang编程常用规范/工具
代码格式化工具 代码风格: go install github.com/fsgo/go_fmt/cmd/gorgeouslatest gorgeous # 仅格式化git有改动的文件。如需格式化所有文件,可以执行 gorgeous ./...标签格式:https://github.com/4meepo/tagalign go install github.c…...
数字王国里的虚拟人――技术、商业与法律解读
💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【海拥导航】🤟 找工作,来万码优才:👉 #小程序://万码优才/HDQZJEQiCJb9cFi💅 想寻找共同学习交流,摸鱼划水的小伙伴,请点击【全栈技…...
Java后端基础练习|请求参数
请求参数,可以通过四种方式传递到后端 请求路径查询参数请求体请求头 controller代码 package com.urfread.breaknews.core.controller;import com.urfread.breaknews.core.common.model.ResultData; import lombok.Data; import org.springframework.web.bind.a…...
YOLOv11模型导出实战:从PyTorch到多平台部署的完整指南
1. YOLOv11模型导出前的准备工作 第一次接触模型导出时,我踩过不少坑。记得有次在客户现场调试,因为环境配置问题折腾了一整天。所以咱们先把基础打牢,避免走弯路。 硬件环境方面,建议至少准备: 配备NVIDIA显卡的机器&…...
手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码)
基于STM32的PT100高精度温度采集系统设计与实现 在工业控制和精密测量领域,温度监测的准确性往往直接影响产品质量和生产安全。PT100作为最常用的温度传感器之一,凭借其优异的线性度和稳定性,成为众多工程师的首选。本文将深入探讨如何利用ST…...
告别单调闪烁!用GD32F303的TIMER高级功能玩转PWM:实现S形曲线呼吸灯与多灯同步效果
解锁GD32F303定时器高阶玩法:S形曲线PWM与多灯协同控制艺术 呼吸灯效果在嵌入式设备中早已司空见惯,但大多数实现仍停留在简单的线性渐变阶段。当LED亮度以恒定速率变化时,人眼会感知到明显的"机械感"——就像早期数字音乐缺少模拟…...
Windows Defender的MsMpEng.exe为什么总在“瞎忙”?从机制到应对的深度解读
Windows Defender的MsMpEng.exe高占用现象:机制解析与精准优化策略 你是否经历过这样的场景:正在紧急编译代码时,风扇突然狂转,任务管理器里MsMpEng.exe的CPU使用率飙升至90%;或者拷贝大型设计文件时,系统卡…...
惠普M232,M233,M234,M235,M236屏幕报错rd,修复工具
惠普M232,M233,M234,M235,M236屏幕报错rd,修复工具,惠普降级固件 链接:https://pan.baidu.com/s/1J7PN4m4fbIzku9DqBFg_nw?pwd0000 提取码:0000 复制这段内容后打开百度网盘手机App,操作更方便哦 备用下载:下载...
如何快速掌握mruby生态系统:第三方库、工具和资源的完整指南
如何快速掌握mruby生态系统:第三方库、工具和资源的完整指南 【免费下载链接】mruby Lightweight Ruby 项目地址: https://gitcode.com/gh_mirrors/mr/mruby mruby是一个轻量级的Ruby实现,专为嵌入式系统和资源受限环境设计。这个强大的轻量级Rub…...
快手无水印下载深度解析:从技术原理到商业应用的完整方案
快手无水印下载深度解析:从技术原理到商业应用的完整方案 【免费下载链接】KS-Downloader 快手(KuaiShou)视频/图片下载工具;数据采集工具 项目地址: https://gitcode.com/gh_mirrors/ks/KS-Downloader 在短视频内容管理日…...
EZSwiftExtensions 性能优化技巧:让你的扩展运行更快更稳定
EZSwiftExtensions 性能优化技巧:让你的扩展运行更快更稳定 【免费下载链接】EZSwiftExtensions :smirk: How Swift standard types and classes were supposed to work. 项目地址: https://gitcode.com/gh_mirrors/ez/EZSwiftExtensions EZSwiftExtensions …...
Python开发者必看:用SMSBoom给你的短信服务做个‘压力体检’(附完整配置流程)
Python开发者必看:用SMSBoom给你的短信服务做个‘压力体检’(附完整配置流程) 短信服务作为现代应用的关键组件,其稳定性直接影响用户体验。想象一下,当你的电商平台在促销活动期间需要发送大量验证码时,短…...
【MobaXterm进阶】SSH连接稳定性优化:Keepalive与超时设置详解
1. 为什么SSH连接会频繁断开? 很多朋友在用MobaXterm远程连接服务器时都遇到过这样的困扰:明明连接得好好的,过一会儿就莫名其妙断开了。特别是当你正在执行一个耗时较长的任务时,突然中断简直让人抓狂。这种情况在家庭版用户中尤…...
