题解:P11798 【MX-X9-T2】『GROI-R3』XOR
DiaoHantong · · 题解
题目传送门
思路
1.异或和的性质:
从
2.目标值的计算
从
3.四种情况处理
情况一:
目标值
情况二:
目标值
情况三:
目标值
情况四:
目标值
代码
#include<bits/stdc++.h>
#define int long long
using namespace std;
int yihuo(int n){
if(n%4==0){
return n;
}else if(n%4==1){
return 1;
}else if(n%4==2){
return n+1;
}else{
return 0;
}
}
signed main(){
int T;
cin>>T;
while(T--){
int l,r,k,x;
cin>>l>>r>>k>>x;
int y=yihuo(k-1);
int cnt=y^x;
int ans=-1;
if(cnt%4==0){
if(l<=cnt&&cnt<=r)ans=cnt;
}
if(ans==-1&&cnt%4==3){
if(l<=cnt-1&&cnt-1<=r)ans=cnt-1;
}
if(ans==-1&&cnt==0){
if(l+(3-l%4+4)%4<=r)ans=l+(3-l%4+4)%4;
}
if(ans==-1&&cnt==1){
if(l+(1-l%4+4)%4<=r)ans=l+(1-l%4+4)%4;
}
if(ans!=-1)cout<<ans<<"\n";
else cout<<"-1\n";
}
return 0;
}