异或规律
//题目链接SDNU OJ 1385 //异或两个数 //1=1 //1^2=3 //1^2^3=0 //1^2^3^4=4 //~~^5=1 //~~^6=7 //~~^7=0 //~~^8=8 /* n%4==1 -> 1 n%4==2 ->n+1 n%4==3 -> 0 n%4==0 -> n 从1~a -> 结果=sum1 从1~b -> 结果=sum2 从a~b -> 结果sum3 = sum1^sum2^a = (a+1 ~ b) ^ a */ #include <cstdio> #include <cstring> #include <cmath> #include <iostream> #include <algorithm> #include <vector> #include <stack> #include <sstream> #include <map> #include <set> #include <queue> using namespace std; typedef long long ll; int main() { int T; cin >> T; while(T--) { ll a,b; cin >> a >> b; ll sum1,sum2; if(a%4==1) sum1=1; else if(a%4==2) sum1=a+1; else if(a%4==3) sum1=0; else if(a%4==0) sum1=a; if(b%4==1) sum2=1; else if(b%4==2) sum2=b+1; else if(b%4==3) sum2=0; else if(b%4==0) sum2=b; ll sum3=sum1^sum2^a; cout << sum3 << endl; } return 0; }