题干:

前缀异或 

基准时间限制:2 秒 空间限制:131072 KB 分值: 5

输入一个长度为n(1 <= n <= 100000)数组a[1], a[2], ..., a[n]。

输入一个询问数m(1 <= m <= 100000)和m组询问,每组询问形如(l, r)

对于每组询问(l, r),你需要输出a[l] xor a[l + 1] xor ... xor a[r - 1] xor a[r],即第l个数字到第r个数字的异或。

如果你的算法需要约n*m的时间,你将只能通过第一个测试点。

如果你的算法需要约n+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

解题报告:

题目倒是不难,,,主要是更好的理解一下前缀和,最后查询的时候不是“-”!!!而是异或的逆运算 其实依旧是异或。。

AC代码:

#include<bits/stdc++.h>
#define ll long long
using namespace std;
ll a[100000 + 5],ans[100000 + 5];
int n,m;
int main()
{
//  printf("%d\n",2^3);cin>>n;for(int i = 1; i<=n; i++) {scanf("%lld",&a[i]);ans[i] = ans[i-1] ^ a[i];}
//  for(int i = 1; i<=n; i++) {
//      printf("%d ",ans[i]);
//  }
//  printf("\n");cin>>m;int l,r;while(m--) {scanf("%d%d",&l,&r);printf("%lld\n",ans[r] ^ ans[l - 1]);}return 0;} 

【51nod - 前缀异或】 对前缀和的理解相关推荐

  1. Chino with Train to the Rabbit Town(前缀异或和)+(前缀后缀或)

    链接:https://ac.nowcoder.com/acm/contest/553/G 来源:牛客网 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 262144K,其他语言5242 ...

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

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

  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的子段个数,做法 ...

最新文章

  1. 3亿人养老靠机器人?这家公司要在2030年实现,有谱
  2. 【MySQL】 性能优化之 延迟关联
  3. Skynet入门范例之sproto
  4. ofdma技术_科普:何为第六代WiFi技术?你家也可以轻松实现1.6G每秒的网速
  5. Caffe官方教程翻译(9):Multilabel Classification with Python Data Layer
  6. 自动装配有哪些局限性?
  7. 2.2 KNN算法实现
  8. 整理各个平台的访问入口及快速推文的方法
  9. java中的this.id_Java this关键字
  10. 深度学习Trick——用权重约束减轻深层网络过拟合|附(Keras)实现代码
  11. vue项目实现详情页后退缓存之前的数据
  12. babel的使用及安装配置教程
  13. Congestion问题怎么解决?
  14. 开环控制系统与闭环控制系统
  15. 简析XDP的重定向机制
  16. 十月的秋风还没有来到...
  17. 学计算机专业独立显卡有必要吗,独立显卡有什么用
  18. js判断数组的方法(JavaScript判断数组的方法,7种),实操详细
  19. flexslider参数
  20. 直接转矩控制matlab仿真,基于matlab的异步(感应)电机直接转矩控制系统毕业论文+仿真源码+仿真模型...

热门文章

  1. [Leetcode][第1143题][JAVA][最长公共子序列][LCS][动态规划]
  2. CF Vicious Keyboard 构造水题
  3. android5.1 显示方向,Android5.1 Settings.apk定制显示选项
  4. java peek函数_基础篇:JAVA.Stream函数,优雅的数据流操作
  5. mysql change index_MySQL · 引擎特性 · Innodb change buffer介绍
  6. elementui树状菜单tree_vue.js+element-ui做出菜单树形结构
  7. 云起智慧中心连接华为_【转发】华为智慧屏HiLink控制联动,操作指南来了!
  8. 使用DBCA创建数据库
  9. Asterisk权威指南/第六章 拨号计划基础
  10. WinCE驱动开发问题精华集锦