2653 区间xor
前言
这个题目在我之前那篇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的更多相关文章
- Codeforces 242E:XOR on Segment(位上的线段树)
http://codeforces.com/problemset/problem/242/E 题意:给出初始n个数,还有m个操作,操作一种是区间求和,一种是区间xor x. 思路:昨天比赛出的一道类似 ...
- 【洛谷】【线段树+位运算】P2574 XOR的艺术
[题目描述:] AKN觉得第一题太水了,不屑于写第一题,所以他又玩起了新的游戏.在游戏中,他发现,这个游戏的伤害计算有一个规律,规律如下 1. 拥有一个伤害串为长度为n的01串. 2. 给定一个范围[ ...
- CodeForces - 587E[线段树+线性基+差分] ->(线段树维护区间合并线性基)
题意:给你一个数组,有两种操作,一种区间xor一个值,一个是查询区间xor的结果的种类数 做法一:对于一个给定的区间,我们可以通过求解线性基的方式求出结果的种类数,而现在只不过将其放在线树上维护区间线 ...
- 【bzoj4571&&SCOI2016美味】
4571: [Scoi2016]美味 Time Limit: 30 Sec Memory Limit: 256 MBSubmit: 656 Solved: 350[Submit][Status][ ...
- luogu P3293 [SCOI2016]美味
题目描述 一家餐厅有 n 道菜,编号 1...n ,大家对第 i 道菜的评价值为 ai(1<=i<=n).有 m 位顾客,第 i 位顾客的期望值为 bi,而他的偏好值为 xi .因此,第 ...
- leetcode 几何题 位运算 面试编程
[BZOJ][CQOI2014]数三角形 Description给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input ...
- 专题训练之LCA
推荐几个博客:https://www.cnblogs.com/JVxie/p/4854719.html Tarjan离线算法的基本思路及其算法实现 https://blog.csdn.net/shah ...
- FZU 2105 Digits Count(按位维护线段树)
[题目链接] http://acm.fzu.edu.cn/problem.php?pid=2105 [题目大意] 给出一个序列,数字均小于16,为正数,每次区间操作可以使得 1. [l,r]区间and ...
- COCI2017-2018#3 Dojave || 洛谷P4443
题目传送门............................................................................................... ...
随机推荐
- HTML颜色表
1.配色原则 2.HTML颜色表 颜色名列表 单击一个颜色名或者16进制值,就可以查看与不同文字颜色搭配的背景颜色 3.总参考表:
- elasticsearch用法
基本原理 搜索引擎的索引 倒排序 由value查找key 数据库的索引 由key查找value 用于解决分库分表后的排序分页 like查找 性能问题 日志库的全文搜索 spring集成时使用的不是re ...
- SpringBoot之HandlerInterceptor拦截器的使用 ——(三)获取requestBody解决java.io.IOException: Stream closed
原文地址:https://blog.csdn.net/zhibo_lv/article/details/81875705 感谢原作者
- 《内蒙古自治区第十二届大学生程序设计竞赛试题_D: 正品的概率》
问题 D: 正品的概率 内存限制:128 MB时间限制:1 S标准输入输出 题目类型:传统评测方式:文本比较上传者:外部导入 提交:36通过:7 返回比赛提交提交记录 题目描述 袋中有m枚正品硬币,n ...
- 关于前端使用JavaScript获取base64图片大小的方法
base64原理 Base64编码要求把3个8位字节(38=24)转化为4个6位的字节(46=24),之后在6位的前面补两个0,形成8位一个字节的形式. 如果剩下的字符不足3个字节,则用0填充,输出字 ...
- mybatis 添加后获得该新增数据自动生成的 id
// useGeneratedKeys默认值为false,keyProperty的值对应的是User类中的主键字段名 // mybatis 写法如下 <insert id="inser ...
- Java并发 - (无锁)篇6
, 摘录自葛一鸣与郭超的 [Java高并发程序设计]. 本文主要介绍了死锁的概念与一些相关的基础类, 摘录自葛一鸣与郭超的 [Java高并发程序设计]. 无锁是一种乐观的策略, 它假设对资源的访问是没 ...
- 初识JS之数据类型
JavaScript JavaScript引入方式 Script标签内写代码 <script> // 在这里写你的JS代码 </script> 引入额外的JS文件 <sc ...
- hexo NexT主题首页title链接的优化
在默认设置下,文章链接都会改变,不利于搜索引擎收录,也不利于分享 更改index.swig文件 文件路径是your-hexo-sitethemesnextlayout,将下面代码 1 {% block ...
- JavaScript闭包、Object对象
JavaScript闭包 定义:闭包指一个拥有许多变量和绑定这些变量的环境的表达式(通常是一个函数),因而这些变量也是该表达式的一部分. function a(){ var i=0; function ...