1. 题目

给定数组 A(下标从0到n-1,n为数组长度),和一个查询列表。
每一项查询包括两个整数 i 和 k。
对于每次查询,计算Ai, A(i + 1), ..., A(i+k-1)的异或值。结果保存在列表中。

样例1
输入: A = [1,2,3,4] and query = [(0,2),(1,2)]
输出: [3,1]
解释:
1 ^ 2 = 3
2 ^ 3 = 1样例2
输入: A = [1,2,4,8] and query = [(0,3),(1,3)]
输出: [7,14]
解释:
1 ^ 2 ^ 4 = 7
2 ^ 4 ^ 8 = 14注意事项
在大部分编程语言中你可以使用 '^'来进行异或运算。
数组长度小于1000,查询次数小于1000。
保证Ai<1000,k>0,i+k-1<n。

2. 解题

  • 计算前缀异或值
  • 放了方便边界处理,前后各加一个0,0与其他异或不改变别人
  • 对区间两端点的前缀异或值异或,即得到区间内元素的异或值
/*** Definition of Interval:* classs Interval {*     int start, end;*     Interval(int start, int end) {*         this->start = start;*         this->end = end;*     }* }*/class Solution {public:vector<int> intervalXOR(vector<int> &A, vector<Interval> &query) {int s = 0;A.insert(A.begin(),0);A.push_back(0);for(int i = 0; i < A.size(); ++i){s ^= A[i];A[i] = s;}vector<int> ans;for(int i = 0; i < query.size(); ++i){ans.push_back(A[query[i].start]^A[query[i].start+query[i].end]);}return ans;}
};

100% 数据通过测试
总耗时 50 ms
您的提交打败了 96.69% 的提交!

LintCode 1652. 区间异或 II相关推荐

  1. 2021牛客暑期多校训练营4 Tree Xor (区间异或上一个数+区间求交)

    题解: 首先我们可以发现,只要确定了一个值,那么树上其他的值也可以确定下来了,但是显然,遍历一棵树的时间复杂度为O(n),如果枚举+暴力判断的话时间复杂度O(1e9∗n)O(1e9*n)O(1e9∗n ...

  2. Codechef REBXOR HYSBZ - 4260(01字典树+区间异或最大)

    Input 输入数据的第一行包含一个整数N,表示数组中的元素个数. 第二行包含N个整数A1,A2,-,AN. Output 输出一行包含给定表达式可能的最大值. Sample Input 5 1 2 ...

  3. 2021牛客第四场-E Tree Xor-线段树区间异或

    https://ac.nowcoder.com/acm/contest/11255/E 题目大意:有n个点,每一点有一个区间[l,r]范围的权值可能,有n-1条边,边上的权值为w,w=w(u)^w(v ...

  4. Consecutive Sum LightOJ - 1269(区间异或和)

    Consecutive Sum 又来水一发blog... 本来是昨天补codechef的题,最后一道题是可持久化字典树,然后去黄学长博客看了看 觉得字典树写法有点不太一样,就想着用黄学长的板子写码几道 ...

  5. 关于异鬼II bootkit病毒的关情况

    近日,CNCERT收到腾讯公司关于一款名为"异鬼II"的bootkit病毒在互联网上大量传播的情况报告.CNCERT及时开展监测分析,发现我国境内已有大量用户感染,对我国互联网安全 ...

  6. LintCode 207. 区间求和 II(线段树)

    1. 题目 在类的构造函数中给一个整数数组, 实现两个方法 query(start, end) 和 modify(index, value): 对于 query(start, end), 返回数组中下 ...

  7. HDU 5465 Clarke and puzzle (二维树状数组维护区间异或)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5465 解题思路: 因为要对大量的区间进行异或,所以考虑用二维树状数组就行维护. #include< ...

  8. 线段树 ---- 牛客多校4 ETree Xor 区间异或分段

    题目链接 题目大意: 就是给你nnn个节点的树,树上每个节点都有一个权值wi∈[li,ri]w_i\in[l_i,r_i]wi​∈[li​,ri​],以及相邻(u,v)(u,v)(u,v)的异或值wu ...

  9. P4735 最大异或和(可持久化trie树、求最大区间异或和)

    P4735 最大异或和 我们维护一个前缀异或和:s[i]=a[1]xora[2]xor-a[i−1]xora[i]s[i] = a[1] \ xor\ a[2]\ xor\ - a[i-1] \ xo ...

最新文章

  1. 阿里云文件存储极速型NAS产品介绍
  2. MyEclipse-7.5.0版注册码破解及激活操作
  3. ITK:重新缩放图像
  4. .NET测试用例写的好不好?让变种来测试一下!
  5. C++学习——构造函数,析构函数与虚函数关系
  6. c语言程序设计的常用算法,《C语言程序设计的常用算法.doc
  7. Gadget,又见Gadget - 浅尝Windows Live Contacts Gadget
  8. 拓端tecdat|在Python中使用LSTM和PyTorch进行时间序列预测
  9. 哈工大计算机系统实验三——二进制炸弹
  10. 用python写一个专属字典生成器
  11. 【翻译】CRAFT:Character Region Awareness for Text Detection
  12. STM32F4 ETR计数
  13. ValueError: Only images with 2 spatial dimensions are supported. If using with color/multichannel im
  14. 计算机专业保研英语自我介绍,计算机专业保研面试英文自我介绍
  15. linux 部署 程序,Linux 部署配置WEB APP
  16. 【教程】Unity账号注册和Unity Hub激活
  17. python输出箭头代码_OS X和代码在Python中的“向上箭头”历史记录.InteractiveConsole...
  18. matlab 统计数组频数_matlab如何找出一个数在数组中出现次数
  19. 【原创】新韭菜日记58--20190618 很久没写了,因为套牢,因为没内容可写
  20. Windows 7 如何开启休眠

热门文章

  1. 利用dft的定义计算dft的matlab程序_CP2K教程系列之静态计算(Pymatflow篇)
  2. 链表创建、逆置、删除详解
  3. baidumap vue 判断范围_vue 数据渲染
  4. 衰落信道中的平均信噪比和瞬时信噪比
  5. JVM内存溢出时快照转存HeapDump到文件
  6. StringBuffer/StringBuilder/String的区别
  7. LINQ简记(1):基本语法
  8. [haoi2011]防线修建
  9. 读书笔记2013第18本:《像外行一样思考,像专家一样实践》
  10. 操作系统中抢占式和非抢占式内核的区别