305860: CF1100F. Ivan and Burgers

Memory Limit:256 MB Time Limit:3 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Ivan and Burgers

题意翻译

给定$n$和$a_{i\dots n}$ 有$q$个询问: 给定$l,r$ 求在$a_{l\dots r}$中选取任意个,使得他们的异或和最大。

题目描述

Ivan loves burgers and spending money. There are $ n $ burger joints on the street where Ivan lives. Ivan has $ q $ friends, and the $ i $ -th friend suggested to meet at the joint $ l_i $ and walk to the joint $ r_i $ $ (l_i \leq r_i) $ . While strolling with the $ i $ -th friend Ivan can visit all joints $ x $ which satisfy $ l_i \leq x \leq r_i $ . For each joint Ivan knows the cost of the most expensive burger in it, it costs $ c_i $ burles. Ivan wants to visit some subset of joints on his way, in each of them he will buy the most expensive burger and spend the most money. But there is a small issue: his card broke and instead of charging him for purchases, the amount of money on it changes as follows. If Ivan had $ d $ burles before the purchase and he spent $ c $ burles at the joint, then after the purchase he would have $ d \oplus c $ burles, where $ \oplus $ denotes the [bitwise XOR operation](https://en.wikipedia.org/wiki/Bitwise_operation#XOR). Currently Ivan has $ 2^{2^{100}} - 1 $ burles and he wants to go out for a walk. Help him to determine the maximal amount of burles he can spend if he goes for a walk with the friend $ i $ . The amount of burles he spends is defined as the difference between the initial amount on his account and the final account.

输入输出格式

输入格式


The first line contains one integer $ n $ ( $ 1 \leq n \leq 500\,000 $ ) — the number of burger shops. The next line contains $ n $ integers $ c_1, c_2, \ldots, c_n $ ( $ 0 \leq c_i \leq 10^6 $ ), where $ c_i $ — the cost of the most expensive burger in the burger joint $ i $ . The third line contains one integer $ q $ ( $ 1 \leq q \leq 500\,000 $ ) — the number of Ivan's friends. Each of the next $ q $ lines contain two integers $ l_i $ and $ r_i $ ( $ 1 \leq l_i \leq r_i \leq n $ ) — pairs of numbers of burger shops between which Ivan will walk.

输出格式


Output $ q $ lines, $ i $ -th of which containing the maximum amount of money Ivan can spend with the friend $ i $ .

输入输出样例

输入样例 #1

4
7 2 3 4
3
1 4
2 3
1 3

输出样例 #1

7
3
7

输入样例 #2

5
12 14 23 13 7
15
1 1
1 2
1 3
1 4
1 5
2 2
2 3
2 4
2 5
3 3
3 4
3 5
4 4
4 5
5 5

输出样例 #2

12
14
27
27
31
14
25
26
30
23
26
29
13
13
7

说明

In the first test, in order to spend the maximum amount of money with the first and third friends, Ivan just needs to go into the first burger. With a second friend, Ivan just go to the third burger. In the second test for a third friend (who is going to walk from the first to the third burger), there are only 8 options to spend money — $ 0 $ , $ 12 $ , $ 14 $ , $ 23 $ , $ 12 \oplus 14 = 2 $ , $ 14 \oplus 23 = 25 $ , $ 12 \oplus 23 = 27 $ , $ 12 \oplus 14 \oplus 23 = 20 $ . The maximum amount of money it turns out to spend, if you go to the first and third burger — $ 12 \oplus 23 = 27 $ .

Input

题意翻译

给定$n$和$a_{i\dots n}$ 有$q$个询问: 给定$l,r$ 求在$a_{l\dots r}$中选取任意个,使得他们的异或和最大。

加入题单

上一题 下一题 算法标签: