A1-2017级算法上机第一次练习赛 I jhljx学位运算

Problem Description

jhljx在C++程序设计课程中学习了位运算这个高端的知识,现在他开始上算法课,决定活学活用。。

位运算中异或是一个比较神奇的操作,有0^1=1,1^0=1,0^0=0,1^1=0。

于是jhljx给你了一个长度为n的数组,让你求出该数组的某个子数组(数组中下标连续的一些元素组成的数组)的异或值之和。

Input

输入多组数据。
对于每组数据,第一个行为数据组数n(1<=n<=1000000)
第二行为n个数组元素(保证元素在int范围内)
第三行为一个正整数k(1<=k<=100),表示有k次询问。
接下来为k行,每行为两个数字i和j(1<=i,j<=n),表示子数组的边界。

Output

对于每组数据,输出每次询问的子数组的元素异或值之和。

Sample Input

4

1 2 3 4

3

1 2

2 4

1 4

Sample Output

3

5

4

Hint

  • 异或的性质:a^a=0,a^b=c,a^c=b。
  • 数据量较大,请用scanf和printf来实现。

Trick

为了防止大家WA到停不下来,这里给出提示,询问时的i和j大小顺序不确定。

Source

改编自小米2017校园招聘笔试,改动较大,已降低难度。

Tutorial

本题帮助大家复习了sum和xor的用法。
如果你轻松地解决了本题,可以思考如何求解一个数组中所有子数组异或和中最大的那个?提示:trie
小米2017校招笔试原题:求解一个数组中满足两个数异或值大于m的个数。n~100000
求解算法:贪心+trie/map,复杂度O(nlg(100000))

思路

原文地址:https://www.cnblogs.com/zjsyzmx0527/p/10182628.html

时间: 2024-11-05 18:58:57

A1-2017级算法上机第一次练习赛 I jhljx学位运算的相关文章

A1-2017级算法上机第一次练习赛 P ModricWang&#39;s Number Theory II

题目描述 ModricWang has found a list containing n numbers. He calls a list bad if and only if it is not empty and gcd (see notes section for more information) of numbers in the list is 1. ModricWang can perform two types of operations: Choose a number an

A1-2017级算法上机第一次练习赛 D 水水的Horner Rule

题目描述 霍纳(Horner)规则是一种将一元n次多项式的求值问题转化为n个一次式的算法.采用最小的乘法运算策略,用于求多项式A(x)=a0+a1x+a2x^2+...+an-1x^n-1+anx^n在x处的值,转化为A(x)=a0+x(a1+x(a2+...+x(an-1+xan)···)).其伪代码如下: y = 0 for i = n downto 0 y = ai + x * y 好的,现在你已经掌握了本题的核心算法! AlvinZH发现,进制之间的转换其实就是霍纳法则的简单应用,如八进

A1-2017级算法上机第一次练习赛 L Bamboo的OS实验

题目描述 每周五Bamboo都要"恋恋不舍"的早退OS的上机实验千里迢迢来看望大家上机 :) 于是第二天Bamboo就要着手赶OS的ddl. 是这样,这次的OS实验给了x个编号为1-30的命令(比如5个命令1 2 3 3 3 ),要求在小黑窗上自己应用. 假设Bamboo每1分钟能完成一个命令,完成这些命令的顺序无所谓,以1分钟为单元,在1分钟里,Bamboo可以选择完成一个命令或者思考人生.更重要的是,为了不产生崩溃情绪,Bamboo要求在执行两个相同编号的命令之间必须要有n个分钟单

A1-2017级算法上机第一次练习赛 A The stupid owls

题目描述 Bamboo recently bought an owl for sending and receiving letters. Every owl will bring a letter to exactly one person, so normally Bamboo's owl will only bring letters for her. Although most owls sold in the magical stores are extremely conscient

A1-2017级算法上机第一次练习赛 B ModricWang和数论

题目描述 给定一个正整数a,对于所有的正整数b,求a%b可能有多少种不同的值? 输入 一个整数a, 1≤a≤10181≤a≤1018 输出 一个整数,a%b可能出现的不同的值的个数 输入样例 3 输出样例 3 思路 懒得写了.应该也不会有人需要看. 参考代码 #include<stdio.h>   int main()   {       long long a;       scanf("%lld",&a);       if(a%2 == 0)         

A1-2017级算法上机第一次练习赛 G 股票交易

题目描述 一般一家公司的股票价格是不稳定的,就像图里所展示的这样,每时每刻的价格都在变.(图片来源网络) 现在,有一份很长很长的连续时间点股票价格数据(按时间从先到后顺序),老板需要你快速的寻找在这段数据范围内一次买卖股票的每股最大收益(假设所有人买卖股票都在给定时间点的数据范围内). 要想解决这个问题,你该怎么办? 输入 多组测试数据(10组左右),以EOF结尾. 每组测试数据分为两行第一行为数组长度n,正整数,代表股票价格数据长度,数据范围为0<n<=1000000 第二行为n个正整数,为

A1-2017级算法上机第一次练习赛 K 画个圈圈诅咒你

题目描述 AlvinZH最近很慌,先是被宋老师一句 "和我们有关系吗" 吓的不行,然后又被原老师批判了一番 "害怕" ,小日子整天过的提心吊胆的,没准儿这题就是你们做的AlvinZH的最后一题(不会的,后面还有一题). 不安的AlvinZH只能通过画圈圈诅咒那些威胁世界和平的人来安慰自己,他不是随便的画圈,所有的圈圆心都在同一条直线上,圈圈有大有小.AlvinZH看着这一个个连着的圈圈,突然想知道哪些圈圈是完全分开的. 请你帮他计算一下有多少对圈圈是完全分开的吧!

2017级算法模拟上机准备篇(一)

回顾一下往年的考题知识点: The Last Battle!! 2014级算法期末上机 简单题--I wanna be the 升级者Ⅰ 结构体排序  STL:sort() 简单题--I wanna be the 升级者Ⅱ 二分 :STL : lower_bound () 简单题--Railway Station 数据结构 : 栈操作模拟 简单题--我在东北玩泥巴:博弈论 中等题--零崎的考试:DP 中等题--伪流水线调度:费用流 网络流 中等题--果园连连看:BFS 图论 难题--线段和直线:

2017级算法第三次上机-B.SkyLee逛漫展

ALS 一道动态规划最经典的题目 动态规划实质上其实就是表格法,利用表格来记录每个子问题的解. DP所关注的其实是递归 即一个较小问题的解和一个较大问题的状态转移问题. 其次还要关注的其实还是是初始值的设立,这个决定了后续的递推能否顺利的进行. 还有要思考好dp数组所代表的具体的含义 这样在状态转移的过程中 也可以好一点理解. #include <iostream> #include <algorithm> #include <cstring> using namesp