列表

详情


NC214842. A|B

描述


给定两个正整数a,x,统计满足以下条件的的个数:

输入描述

第一行给出一个 

接下来 t 行每行一对正整数 

输出描述

输出 t 行,每行一个正整数

示例1

输入:

2
1 2
2 3

输出:

1
1

原站题解

上次编辑到这里,代码来自缓存 点击恢复默认模板

C++ 解法, 执行用时: 339ms, 内存消耗: 948K, 提交时间: 2021-08-13 17:31:17

#include<bits/stdc++.h>
using namespace std;
int main(){
	int t,cnt;
	cin>>t;
	while(t--){
		int a,x,sum;
		sum=0;
		cin>>a>>x;
		for(int i=(1<<30);i;i>>=1){
			if(i&x){
				cnt=0;
				for(int j=(i>>1);j;j>>=1){
					if((j&a)==0)cnt++;
				}
				sum+=pow(2,cnt);
				if(i&a)break;
			}
		}
		if((a|x)==a+x)sum++;
		sum=sum-1;
		printf("%d\n",sum);
	}
	return 0;
} 

上一题