区间异或和

计算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;
}

参考文章:https://zhuanlan.zhihu.com/p/139949012

全部评论

相关推荐

12-10 22:48
武汉大学 Java
点赞 评论 收藏
分享
rbjjj:太杂了吧,同学,项目似乎都没深度,都是api调度耶,分层架构思想没有体现出来了,前端没有前端优化前端工程化体现,后端微服务以及分层架构没体现以及数据安全也没体现,核心再改改,注重于计算机网络,工程化,底层原理吧
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务