2128 前缀异或

基准时间限制:2 秒 空间限制:131072 KB 分值: 5 难度:1级算法题


输入一个长度为n(1<=n<=100000)n(1<=n<=100000)数组a[1],a[2],...,a[n]a[1],a[2],...,a[n]。
输入一个询问数m(1<=m<=100000)m(1<=m<=100000)和m组询问,每组询问形如(l,r)(l,r)
对于每组询问(l,r)(l,r),你需要输出a[l]xora[l+1]xor...xora[r−1]xora[r]a[l]xora[l+1]xor...xora[r−1]xora[r],即第l个数字到第r个数字的异或。
如果你的算法需要约n∗mn∗m的时间,你将只能通过第一个测试点。
如果你的算法需要约n+mn+m的时间,你将可以通过本题。

Input
第一行一个整数n
第二行为n个整数a[1], a[2], … a[n]
第三行一个整数m
接下来m行,每行两个整数l, r表示询问。

Output
输出一共m行,对于每一个询问输出一个整数表示结果。

Input示例

3
1 2 3
6
1 1
2 2
3 3
1 2
2 3
1 3

Output示例

1
2
3
3
1
0

wwwwodddd (题目提供者)
C++的运行时限为:2000 ms ,空间限制为:131072 KB 示例及语言说明请按这里

题解
我们知道Xor同一个数两次等于什么都没干,那么就令sum[i]=a[1] xor a[2] xor…xor a[i],我们取答案时就sum[R] xor sum[L-1]就可以了。Xo r在C++里是 ^。

代码如下

#include<cstdio>
using namespace std;
int n,q,a[100005];
int main(){
//  freopen("prob.in","r",stdin);
//  freopen("prob.out","w",stdout);scanf("%d",&n);for(int i=1;i<=n;i++){scanf("%d",&a[i]);a[i]^=a[i-1];}scanf("%d",&q);for(int i=1;i<=q;i++){int L,R;scanf("%d%d",&L,&R);printf("%d\n",a[R]^a[L-1]);}return 0;
}

转载于:https://www.cnblogs.com/XSamsara/p/9059402.html

[51nod]2128 前缀异或【数学题】相关推荐

  1. 51Nod 2128 前缀异或 c/c++题解

    题目描述 输入一个长度为n(1 <= n <= 100000)数组a[1], a[2], -, a[n]. 输入一个询问数m(1 <= m <= 100000)和m组询问,每组 ...

  2. 【51nod - 前缀异或】 对前缀和的理解

    题干: 前缀异或  基准时间限制:2 秒 空间限制:131072 KB 分值: 5 输入一个长度为n(1 <= n <= 100000)数组a[1], a[2], ..., a[n]. 输 ...

  3. 【牛客每日一题】 4.13 Xorto(前缀异或和,枚举优化/映射)

    链接:https://ac.nowcoder.com/acm/problem/14247 来源:牛客网 题目描述 给定一个长度为n的整数数组,问有多少对互不重叠的非空区间,使得两个区间内的数的异或和为 ...

  4. CF1592E Bored Bakry(二进制+前缀异或和)

    CF1592E Bored Bakry description solution code description 题目链接 solution and\text{and}and如果第iii位为111, ...

  5. LeetCode 1829. 每个查询的最大异或值(前缀异或 + 位运算)

    文章目录 1. 题目 2. 解题 1. 题目 给你一个 有序 数组 nums ,它由 n 个非负整数组成,同时给你一个整数 maximumBit .你需要执行以下查询 n 次: 找到一个非负整数 k ...

  6. LeetCode 1442. 形成两个异或相等数组的三元组数目(前缀异或)

    1. 题目 给你一个整数数组 arr . 现需要从数组中取三个下标 i.j 和 k ,其中 (0 <= i < j <= k < arr.length) . a 和 b 定义如 ...

  7. CodeForces.1174D.EhabandtheExpectedXORProblem(构造前缀异或和数组)

    题目链接 这道题比赛的时候没做出来,赛后补题的时候发现其实可以构造一个前缀异或和数组,然后根据初始化的第一个值进行填数,但是作为菜鸡的我虽然坚信自己的想法是正确的却想了很久也没有能够构造出来所谓的前缀 ...

  8. 前缀异或:XOR Segment (用的是前缀和的思想,所以暂且称这个方法为前缀异或)

    XOR Segment Time Limit : 3000/1000ms (Java/Other)   Memory Limit : 65535/32768K (Java/Other) Total S ...

  9. 异或性质——前缀异或

    昨天遇到一个非常神奇的事情,异或也能维护前缀和? 有两个例题: 例一.子段异或 描述: 给出长度为n的数列,问 异或值为0的子段一共有多少? 思路: 之前有一个考前缀和的,求子段和为0的子段个数,做法 ...

  10. LeetCode 1310. 子数组异或查询(前缀异或)

    1. 题目 有一个正整数数组 arr,现给你一个对应的查询数组 queries,其中 queries[i] = [Li, Ri]. 对于每个查询 i,请你计算从 Li 到 Ri 的 XOR 值(即 a ...

最新文章

  1. 西班牙放大招,利用区块链技术防腐
  2. 124页,UC伯克利大学胡戎航博士论文公布:视觉与语言推理的结构化模型
  3. 【机器视觉】 dev_update_window算子
  4. MyBatis 关系映射XML配置
  5. python系列(三)python列表详解
  6. php5.5 getter setter,实现了一个PHP5的getter/setter基类的代码
  7. 手机应用url抓取_Python爬虫入门,快速抓取大规模数据(第六部分)
  8. java获取系统时间并自定义格式
  9. 直播平台搭建与相关资料
  10. 最新Axure谷歌浏览器Chrome扩展程序安装方法
  11. PID控制最通俗的解释与PID参数的整定方法
  12. 测试睡眠质量软件,2018测睡眠质量的app排行榜:推荐10款有趣又有效的睡眠APP
  13. 【Python】fastapi框架之Web部署机器学习模型
  14. excel数据导入matlab失败,Excel数据导入matlab
  15. 信息安全等级保护等级划分及适用行业
  16. sdn主要包含哪些接口_解读SDN的东西、南北向接口
  17. Grasshopper脚本电池处理全站仪数据,生成建筑、线状地物和地形
  18. 关于合格设计师的30条冷知识
  19. Elastic Certified Engineer复习记录-复习题详解篇-索引数据(2)
  20. AIMA:如何通过质量指标提高QA的绩效(译)

热门文章

  1. Vitamin-R for Mac(GTD工作效率管理工具)
  2. DBeaverEE for Mac(数据库管理工具)
  3. 矢量绘图工具:Sketch 78 for mac
  4. Mac电脑卡在启动模式了怎么办?
  5. 强大的日志分析工具AWStats
  6. 模拟tomcat连接器
  7. To shade or not to shade
  8. 《Effective Ruby:改善Ruby程序的48条建议》一第2条:所有对象的值都可能为nil
  9. solr4.8.1 + tomcat8 配置
  10. 安卓开发笔记——探索EventBus(转)