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

CF2153B Bitwise Reversion | 数学 | 模拟

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://icebutterfly214.com/news/8142/

相关文章:

  • 2025 年 11 月双锥回转真空干燥机,离心喷雾干燥机,带式干燥机厂家最新推荐,专业制造与品牌保障口碑之选
  • 2025 年 11 月高效沸腾干燥机,旋转闪蒸干燥机,空心桨叶干燥机厂家最新推荐,产能、专利、环保三维数据透视
  • CSP-J 2025 复赛解析
  • CSS:现代Web设计的不同技术
  • 部署Docker开源记账神器Firefly III
  • 完整教程:RabbitMQ-如何保证消息不丢失
  • [GESP202306 二级] 找素数
  • 如何使用React和Redux构建现代化Web应用程序
  • React Hooks 实现表单验证
  • 100万QPS短链系统、商城微服务系统、Saas点餐系统、商城系统、秒杀系统、刷题吧小程序、智能天气播报AI Agent等9个实战项目
  • 【C++】map和set的使用 - 指南
  • 150行的推箱子游戏
  • 中国移动获得手机直连卫星通讯牌照:行业变革的催化剂 - 实践
  • 2025 年 11 月复合酸精华液,抗氧化精华液,液态精华液 OEM/ODM 加工厂最新推荐,榜单透视与选购要点解析!
  • 2025年11月太空舱品牌推荐评价:有实力厂家综合性能评测
  • 2025年11月打印纸推荐榜:口碑好厂家全方位分析与购买建议
  • HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践 - Smart
  • 2025年11月洗碗机品牌推荐评测:海信创新技术与全球布局详析
  • 2025年11月美国投资移民机构排行榜:全面评测与选择建议
  • 记一次vscode 自动格式化保存经历
  • 2025 年 11 月美白贴片面膜,补水贴片面膜,紧致贴片面膜厂家最新推荐,技术实力与市场口碑深度解析
  • vscode判断当前是否为debug模式
  • 深浅拷贝
  • 清华大学AI领导力AI时代领导力AI变革领导力培训师培训讲师专家唐兴通讲授数字化转型人工智能组织创新实践领导力国央企国有企业金融运营商制造业 - 教程
  • 基于Java+Springboot+Vue开发的大学生反诈视频宣传系统源码+运行步骤
  • 2025年知名的帆布布袋定制厂家推荐及选择建议
  • 手把手教你在Mac上安装Python 3.8.4:从下载.dmg到验证成功
  • 2025年靠谱的物流热销口碑榜
  • 使用微信编辑器时如何授权绑定公众号?
  • 2025年值得信赖的B2B网站谷歌优化专业谷歌优化机构服务推荐榜