社区讨论
How B&D
学术版参与者 4已保存回复 6
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 6 条
- 当前快照
- 1 份
- 快照标识符
- @mhjth0xq
- 此快照首次捕获于
- 2025/11/04 08:14 4 个月前
- 此快照最后确认于
- 2025/11/04 08:14 4 个月前
B 题求调,代码如下:
CPP#include<bits/stdc++.h>
using namespace std;
#define int long long
signed main(){
int t,x,n;
cin>>t;
while(t--){
cin>>n>>x;
if(x==0){
if(n==1) cout<<-1;
else if(n%2==0) cout<<n;
else cout<<6+n-3;
cout<<"\n";
}else if(n==1) cout<<x<<"\n";
else if(n==2){
int k=__builtin_popcount(x);
if(k>=2){
cout<<x<<"\n";
continue;
}
int i=1;
while(1){
if((x^i)!=0){
cout<<(x^i)+i<<"\n";
break;
}
i++;
}
}else{
int k=__builtin_popcount(x);
if(k==1){
cout<<1+(x^1)+n-2<<"\n";
continue;
}
if(k>=n) n=0;
else n-=k;
if(n%2==1) n++;
cout<<n+x<<"\n";
}
}
return 0;
}
一直WA on #2。
D题纯好奇,求思路。
回复
共 6 条回复,欢迎继续交流。
正在加载回复...