前言

这个题目在我之前那篇c++位运算的的随笔中提到过。

有兴趣的话去看看吧!

飞机场:https://www.cnblogs.com/laoguantongxiegogofs/p/12444517.html

题目描述

题目描述

给出区间(a,b),b >= a,求a xor (a+1) xor (a+2).....xor ba xor (a+1) xor (a+2).....xor b。

题目输入

输入2个数:a b,中间用空格分隔(1 <= a <= b <= 10^9)

样例:

 

题目输出

输出一个答案

样例:



题解正文

这个题很水,上面虽然说从1到10的九次方,但是数据并没有那么大,一个暴力循环也会过。

暴力这里不打了,看过我的那篇位运算的同学应该都会写。

但是,我们要追求正解。

下面是一个很好的办法:

我们找一找规律

从0到3这四个数异或,也就是0^1^2^3.

转换为二进制计算为:

00^01^10^11=0

从4到7这四个数:

100^101^110^111=0

从8到11这四个数:

1000^1001^1010^1011=0

从12到15、从16到19……

相信你找出规律了,这样的每四个数异或的结果都是0.

又因为0异或所有数都不变,两个相同的数异或得0。(具体看我的位运算那篇文章)

这样就会有思路了。

写一个函数work()

计算1异或到a-1的结果异或1异或到b(为什么异或到a-1不用我说吧)

就是计算结果了。

有人说计算a-1多难啊!

上面不是有方法嘛,把一个数对四取余,按照规律异或就好,时间复杂度会控制在很小很小。

好了,思路清晰,就上代码吧!

 #include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
#define inf 100000000
int work(int x)
{
int k=x%,ans=;
x-=k;
for(int i=;i<=k;i++)
{
ans=ans^(x+i);
}
return ans;
}
using namespace std;
int main()
{
int a,b,x,y;
cin>>a>>b;
printf("%d",work(a-)^work(b));
return ;
}

代码也很简单哎!


后记

今天又是一个双更的日子,以后会把提到的题目全部写出题解。如果感觉文章有问题,就在评论区通知我!

给个赞再走吧!

2653 区间xor的更多相关文章

  1. Codeforces 242E:XOR on Segment(位上的线段树)

    http://codeforces.com/problemset/problem/242/E 题意:给出初始n个数,还有m个操作,操作一种是区间求和,一种是区间xor x. 思路:昨天比赛出的一道类似 ...

  2. 【洛谷】【线段树+位运算】P2574 XOR的艺术

    [题目描述:] AKN觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏.在游戏中,他发现,这个游戏的伤害计算有一个规律,规律如下 1. 拥有一个伤害串为长度为n的01串. 2. 给定一个范围[ ...

  3. CodeForces - 587E[线段树+线性基+差分] ->(线段树维护区间合并线性基)

    题意:给你一个数组,有两种操作,一种区间xor一个值,一个是查询区间xor的结果的种类数 做法一:对于一个给定的区间,我们可以通过求解线性基的方式求出结果的种类数,而现在只不过将其放在线树上维护区间线 ...

  4. 【bzoj4571&&SCOI2016美味】

    4571: [Scoi2016]美味 Time Limit: 30 Sec  Memory Limit: 256 MBSubmit: 656  Solved: 350[Submit][Status][ ...

  5. luogu P3293 [SCOI2016]美味

    题目描述 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1<=i<=n).有 m 位顾客,第 i 位顾客的期望值为 bi,而他的偏好值为 xi .因此,第 ...

  6. leetcode 几何题 位运算 面试编程

    [BZOJ][CQOI2014]数三角形 Description给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input ...

  7. 专题训练之LCA

    推荐几个博客:https://www.cnblogs.com/JVxie/p/4854719.html Tarjan离线算法的基本思路及其算法实现 https://blog.csdn.net/shah ...

  8. FZU 2105 Digits Count(按位维护线段树)

    [题目链接] http://acm.fzu.edu.cn/problem.php?pid=2105 [题目大意] 给出一个序列,数字均小于16,为正数,每次区间操作可以使得 1. [l,r]区间and ...

  9. COCI2017-2018#3 Dojave || 洛谷P4443

    题目传送门............................................................................................... ...

随机推荐

  1. iOS仿写有妖气漫画、视频捕获框架、启动页广告页demo、多种动画效果等源码

    iOS精选源码 以tableview的section为整体添加阴影效果/ta'b'le'vi'e'w顶部悬浮.... 一个可以轻松应用自定义过滤器的视频捕获框架. 基于UITableView的组件,旨 ...

  2. GPIO-FPGA架构

    GPIO是一种软件运行期间能够动态配置和控制的通用引脚 有不同的GPIObank,每个GPIO口的bank都会有编号的区分, 每个GPIO口除了通用的输入输出功能以外,还有其他复用功能,例如GPIO5 ...

  3. 105)PHP,递归删除目录

    Unlink(文件地址)删除文件.

  4. python面向对象小tips

    (一).python鸭子类型 python作为动态语言继承和多态与静态语言(像java)有很大的不同:比如说在java中的某个方法,如果传入的参数是Animal类型,那么传入的对象必须是Animal类 ...

  5. python3下scrapy爬虫(第七卷:编辑器内执行scrapy)

    之前我们都是在终端切入到scrapy的路境内执行爬虫的,你要多敲多少行的字节,所以这次我们谈谈如何在编辑器里执行,这个你可以用在爬虫中,当你使用PYTHONWEB开发时尽量不要在编辑器内启动端口服务那 ...

  6. Centos7下常见目录

    /etc/fstab

  7. MOOC(8)- 在excel中定义用例是否运行

    除了在配置文件中定义运行哪几条用例,还可以直接在excel中定义好是否运行用例,这样比起配置文件更加直观 在运行用例的时候判断一下是否运行这个字段即可

  8. Qt QImage的浅拷贝与深拷贝

    首先简单说说什么是浅拷贝和深拷贝:浅拷贝就比如像引用类型,而深拷贝就比如值类型,即浅拷贝是共用一块内存的,而深拷贝是复制一份内容. 我们再来看看QImage类的几个构造函数: // 浅拷贝 QImag ...

  9. take office|boast|think twice|dispose of|level|stuff|'s mature for|a green hand|'s a slave to|

    One reporter wrote that Dewey was acting like a man who had already been elected and was only passin ...

  10. linux下载文件到本地_把linux服务器的文件下到本地windows

    tar -cvf script.tar scriptsz script.tar 文件夹先要打包,并且要指定打包的名字. 具体:  sz/rz命令:  一般来说,linux服务器大多是通过ssh来进行远 ...