B. Tenzing and Books(位运算符)

该文详细解释了位运算符(按位与,按位或,按位异或)的概念,并提供了一个C++代码示例,用于解决Codeforces上的一个问题。问题的核心是理解如何使用按位或运算符来达到特定的二进制值。代码通过遍历并检查输入数组中的元素是否满足条件,最终组合结果来判断是否能得到目标值。
摘要由CSDN通过智能技术生成

题目:Problem - B - Codeforces

 总结:

对于位运符算可查看:(4条消息) 位操作符(按位与:’&‘,按位或:‘ | ’,按位异或:‘^ ’)细节解析_00000000000000000000000000000000_CCPC不拿奖不改名的博客-CSDN博客

该题目主要考察对位运算的理解

对于按位或“|”有1为1 ,题目要求到达X

若X为3转化为2进制00 11 则求和后两位必须为1,前几位必须为0.

代码献上:

#include<iostream>

using namespace std;

const int N = 1e5 + 10;

int T, n, X, s, a[N];

void slv()
{

	for (int i = 1; i <= n; ++i) cin >> a[i];             //输入

	for (int i = 1; i <= n && ((a[i] & X) == a[i]); ++i)  //判断书的知识是否符合条件
		s |= a[i];
}

int main() 
{
	for (cin>>T; T--;)
	{
		cin>>n>>X;										//数据输入
		s = 0;
		slv(); slv(); slv();                            //三组数据
		s == X ? cout << "Yes"<<endl : cout << "No"<<endl;
	}                                                  //三目运算符判断输出
	return 0;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值