CF2153B Bitwise Reversion | 数学 | 模拟

news/2025/11/1 17:57:14/文章来源:https://www.cnblogs.com/M136e1/p/19183669

CF2153B Bitwise Reversion | 数学 | 模拟

题目描述

给定三个非负整数 \(x\)\(y\)\(z\),判断是否存在三个非负整数 \(a\)\(b\)\(c\),满足以下三个条件:

  • \(a \mathbin{\&} b = x\)
  • \(b \mathbin{\&} c = y\)
  • \(a \mathbin{\&} c = z\)

其中 \(\mathbin{\&}\) 表示按位与运算。

数据范围

输入包含多组测试数据。第一行包含一个整数 \(t\)\(1 \leq t \leq 10^4\)),表示测试数据的组数。

接下来每组测试数据占一行,每行包含三个整数 \(x\)\(y\)\(z\)\(0 \leq x, y, z \leq 10^9\)),分别表示 \(a \mathbin{\&} b\)\(b \mathbin{\&} c\)\(a \mathbin{\&} c\) 的目标值。

5
1 1 1
3 2 6
4 8 12
9 10 12
12730 3088 28130
YES
YES
NO
YES
NO

题解及证明过程

我们知道 \(x_i,y_i,z_i \in \left\{ 0,1\right\}\)\(a_i,b_i,c_i \in \left\{ 0,1\right\}\),为了找出满足 \(a \mathbin{\&} b = x\)\(b \mathbin{\&} c = y\)\(a \mathbin{\&} c = z\) 的数,我们尝试通过排列组合所有情况。

可知对于一组 \((a_i,b_i,c_i)\)\(8\) 种情况。排列组合后后算出对应的 \(x_i,y_i,z_i\) 的值即可。如下:

\(a_i\) \(b_i\) \(c_i\) \(x_i\) \(y_i\) \(z_i\)
\(0\) \(0\) \(0\) \(0\) \(0\) \(0\)
\(1\) \(0\) \(0\) \(0\) \(0\) \(0\)
\(0\) \(1\) \(0\) \(0\) \(0\) \(0\)
\(0\) \(0\) \(1\) \(0\) \(0\) \(0\)
\(1\) \(1\) \(0\) \(1\) \(0\) \(0\)
\(0\) \(1\) \(1\) \(0\) \(1\) \(0\)
\(1\) \(0\) \(1\) \(0\) \(0\) \(1\)
\({\color{Red} 1}\) \({\color{Red} 1}\) \({\color{Red} 1}\) \({\color{Red} 1}\) \({\color{Red} 1}\) \({\color{Red} 1}\)

由表可知,如果 \(x_i=1\)\(y_i=1\),则一定有 \(z_i=1\)。如果 \(x_i=1\)\(z_i=1\),则一定有 \(y_i=1\)。如果 \(y_i=1\)\(z_i=1\),则一定有 \(x_i=1\)

我们同样可以用本文中的要求来证明。根据 \(a \mathbin{\&} b = x\)\(b \mathbin{\&} c = y\)\(a \mathbin{\&} c = z\),所以当 \(x_i=1\)\(y_i=1\) 时,\(a_i=b_i=1\)\(b_i=c_i=1\),所以 \(a_i=c_i=1\),此时代入 \(a \mathbin{\&} c = z\),则 \(z_i=a_i \mathbin{\&} c_i =1\mathbin{\&} 1=1\),故定理成立。同理可证明其他两个结论。

因为 \(0 \leq x, y, z \leq 10^9\),所以我们直接遍历前 \(30\)(因为 \(\log_2 (10^9)\approx 30\))个二进制位。使用布尔形型变量检查其是否满足标准即可。注意数组下标从 \(0\) 开始。

#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
ll T,x,y,z;
int main(){cin>>T;while(T--){cin>>x>>y>>z;bool f=1;for(int i=0;i<31;i++){ll x2=(x>>i)&1,y2=(y>>i)&1,z2=(z>>i)&1;if(x2&y2&&!z2){f=0; break;}if(x2&z2&&!y2){f=0; break;}if(y2&z2&&!x2){f=0; break;}}if(f) cout<<"Yes\n";else cout<<"No\n";}return 0;
}

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

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

相关文章

DRL-QLearning与DQN

强化学习领域中,Q-learning和深度Q网络(DQN)是两个具有里程碑意义的算法。Q-learning奠定了传统强化学习的基础,而DQN则开启了深度强化学习的新时代。本文将深入探讨这两种算法的核心概念和工作原理,帮助读者理解它…

2025 年 11 月真空耙式干燥机,高效沸腾干燥机,盘式干燥机厂家最新推荐,高性能,稳定性强的行业优选

近期,行业设备性能评估协会联合稳定性测试机构,针对真空耙式干燥机、高效沸腾干燥机、盘式干燥机领域,开展 “高性能 - 强稳定” 专项测评。高性能维度设定三项核心标准:干燥效率(比行业平均水平高 15% 以上)、能…

2025 年 11 月盘式干燥机,空心桨叶干燥机,振动流化床干燥机厂家最新推荐,技术实力与市场口碑深度解析

近期,行业技术评估协会联合市场调研机构,针对盘式干燥机、空心桨叶干燥机、振动流化床干燥机领域,开展 “技术实力 - 市场口碑” 双维度专项解析。技术实力测评涵盖三项核心指标:一是研发硬实力(研发团队规模≥15…

2025 年 11 月双锥回转真空干燥机,离心喷雾干燥机,带式干燥机厂家最新推荐,专业制造与品牌保障口碑之选

近期,行业制造标准协会联合品牌评估机构,针对双锥回转真空干燥机、离心喷雾干燥机、带式干燥机领域,开展 “专业制造 - 品牌保障” 双核心测评。专业制造维度从三方面评估:一是生产工艺专业性(是否采用行业专用生…

DRL-时序差分学习

时序差分(Temporal Difference, TD)学习是强化学习中的一种核心方法,它结合了动态规划和蒙特卡洛方法的优点,实现了无需环境模型的在线学习。本指南将详细介绍TD学习的原理。时序差分学习技术指南 时序差分(Tempo…

再见了ThreadLocal,我决定用ScopedValue!

前言 今天我们来聊聊一个即将改变我们编程习惯的新特性——ScopedValue。 有些小伙伴在工作中,一提到线程内数据传递就想到ThreadLocal,但真正用起来却遇到各种坑:内存泄漏、数据污染、性能问题等等。 其实,Scoped…

查询增强插件pgfincore - 教程

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

2025 年 11 月双锥回转真空干燥机,真空耙式干燥机,盘式干燥机厂家最新推荐,聚焦资质、案例、售后的六家机构深度解读

近期,十家行业权威机构联合开展双锥回转真空干燥机、真空耙式干燥机、盘式干燥机专项测评,通过资质审核、案例验证、售后调研三大核心维度,对近百家厂家进行综合评估。资质审核环节重点核查企业专利数量、体系认证(…

2025 年 11 月高效沸腾干燥机,旋转闪蒸干燥机,空心桨叶干燥机厂家最新推荐,产能、专利、环保三维数据透视

近期,行业协会联合专业测评机构,针对高效沸腾干燥机、旋转闪蒸干燥机、空心桨叶干燥机领域开展专项评估,从产能、专利、环保三大核心维度构建测评体系。产能维度重点核查企业年产能规模、生产线自动化程度及订单交付…

如何把未分配的硬盘空间分配到另一个磁盘?Windows 11,如何将未分配的磁盘分配给 C 盘?怎么把未分配的磁盘合并到d盘

如何把未分配的硬盘空间分配到另一个磁盘?Windows 11,如何将未分配的磁盘分配给 C 盘?怎么把未分配的磁盘合并到d盘 基本上几步就能学会,先来看看,大概的思路就是:如果多余的盘存在,则需要删除这个磁盘券;扩展需…

LLM应用敏感数据防泄露指南:AI安全围栏筑牢企业自研AI应用安全防线

LLM应用敏感数据防泄露指南:AI安全围栏筑牢企业自研AI应用安全防线【适用场景】上线了对外提供服务的AI应用,担心被提示词攻击,AI应用输出违规内容与训练或知识库里的敏感数据,安全投入有限的客户 【方案概要】AI-…

C++中`std::function`和`std::bind`的详细解析

一、核心概念 1. std::function功能:通用函数包装器,可存储任意可调用对象 特点:类型擦除:统一处理函数指针、lambda、成员函数等 运行时有少量性能开销 声明时需要指定函数签名2. std::bind功能:绑定参数生成新可…

k8s-应用部署和组件及常用命令(2)

1、相关组件介绍: node是k8s的集群节点,和实际的机器对应 pod是应用容器,不同的应用部署在不同的pod中,k8s协调资源,将pod部署到集群中的node节点上(非master节点)。 同时pod又是挂在namespace下面的,命名空间…

高级语言程序设计第3次作业

2025高级语言程序设计 https://edu.cnblogs.com/campus/fzu/gjyycx/homework/13574 102500426康凯帆 书本第4章4.8编程练习题目中的第2题第4题,第6题第8题 Fan.: 11-01 16:45:16Fan.: 11-01 16:45:17Fan.: 11-01 16:4…

C++多线程相关应用

一、多线程基础 1. 线程创建与管理 #include <thread> #include <iostream>void task(int id) {std::cout << "Thread " << id << " executing\n"; }int main() {s…

CSP-J 2025 复赛解析

[CSP-J 2025] 拼数 / number 题目描述(Description) 小 R 正在学习字符串处理。小 X 给了小 R 一个字符串 \(s\),其中 \(s\) 仅包含小写英文字母及数字,且包含至少一个 \(1 \sim 9\) 中的数字。小 X 希望小 R 使用 \…

加速 Docker 镜像下载的神器:KSpeeder 上手体验

身为开发者,相信你也遇到过拉取 Docker 镜像时的“龟速”折磨——尤其从 Docker Hub 下载热门镜像时,几十 KB/s 的速度让人怀疑人生。最近我在浏览器里看到 KSpeeder 这款工具,专门解决 Docker 镜像加速问题,便顺手…

Java桌面应用开发:JavaFX模块化与响应式

一、技术选型对比1.1 JavaFXJavaFX 是 Oracle 推出的新一代 Java 桌面应用开发框架,具有以下特点: 现代 UI 设计:支持 CSS 样式、3D 效果和动画丰富的控件库:包含 TableView、WebView 等高级组件FXML 分离设计:界…

MyBatis 动态标签

配置文件示例 #应用程序名称 spring.application.name=configuration #应用程序端口号 server.port=8080 #数据库连接信息 spring.datasource.url=jdbc:mysql://127.0.0.1:3306/database_name?characterEncoding=utf8…

用 CSS Grid 实现高效布局的 3 个实战技巧

1. 动态网格:auto-fit + minmax() 响应式适配 无需媒体查询!一行代码创建自适应列: .grid-container {display: grid;grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); } auto-fit:自动填充可用空间…