CF1665E MinimizOR

题目描述

给出一个长度为 $n$ 的非负整数数列 $a$,下标编号从 $1$ 到 $n$。 定义一个数列 $a$ 的代价为 $\min\limits_{i\neq j} a_i|a_j$,其中 $|$ 表示 [按位或](https://en.wikipedia.org/wiki/Bitwise_operation#OR) 运算。 $q$ 个询问,每个询问给出两个整数 $l,r\ (l

输入格式

每个测试点有多组数据。输入的第一行为一个整数 $t\ (1\leq t\leq 10^4)$ 表示数据组数。 每组数据的第一行为一个整数 $n\ (2\leq n\leq 10^5)$ 表示数列 $a$ 的长度。 第二行为 $n$ 个整数 $a_1,a_2,\dots,a_n\ (0\leq a_i< 2^{30})$。 第三行为一个整数 $q\ (1\leq q\leq 10^5)$ 表示询问个数。 下面 $q$ 行每行为两个整数 $l_j,r_j\ (1\leq l_j

输出格式

对于每个测试数据输出 $q$ 个整数,第 $j$ 个数表示数列 $a_{l_j},a_{l_j+1},\dots,a_{r_j}$ 的代价。

说明/提示

In the first test case the array $ a $ is $ 110_2, 001_2, 011_2, 010_2, 001_2 $ . That's why the answers for the queries are: - $ [1; 2] $ : $ a_1 | a_2 = 110_2 | 001_2 = 111_2 = 7 $ ; - $ [2; 3] $ : $ a_2 | a_3 = 001_2 | 011_2 = 011_2 = 3 $ ; - $ [2; 4] $ : $ a_2 | a_3 = a_3 | a_4 = a_2 | a_4 = 011_2 = 3 $ ; - $ [2; 5] $ : $ a_2 | a_5 = 001_2 = 1 $ . In the second test case the array $ a $ is $ 00_2, 10_2, 01_2, \underbrace{11\ldots 1_2}_{30} $ ( $ a_4 = 2^{30} - 1 $ ). That's why the answers for the queries are: - $ [1; 2] $ : $ a_1 | a_2 = 10_2 = 2 $ ; - $ [2; 3] $ : $ a_2 | a_3 = 11_2 = 3 $ ; - $ [1; 3] $ : $ a_1 | a_3 = 01_2 = 1 $ ; - $ [3; 4] $ : $ a_3 | a_4 = 01_2 | \underbrace{11\ldots 1_2}_{30} = 2^{30} - 1 = 1073741823 $ .