区间异或和
计算l,l+1,l+2,...r的异或和
输入格式:
输入包括两个整数1≤l,r≤
* *
输出格式:
输出题目描述中的整数
输入样例:
3 6
输出样例:
4
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll sum(ll n)//[1,n]的区间异或
{
if(n%4==0)return n;
else if(n%4==1)return 1;
else if(n%4==2)return n+1;
else if(n%4==3)return 0;
else return 0;
}
int main()
{
ll l,r;
cin>>l>>r;
ll ans=sum(r)^sum(l-1);//[1,r]区间异或^[1,l-1]的区间异或等于[l,r]的区间异或
cout<<ans<<endl;
return 0;
}
小鹏汽车工作强度 25人发布
