CF1847F The Boss's Identity

题目描述

在追踪 Diavolo 的起源时,Giorno 收到了 Polnareff 发来的一段秘密代码。该代码可以表示为一个无限的正整数序列:$ a_1, a_2, \dots $。Giorno 立刻看出了这段代码背后的规律。前 $ n $ 个数 $ a_1, a_2, \dots, a_n $ 已知。对于 $ i > n $,有 $ a_i = (a_{i-n}\ |\ a_{i-n+1}) $,其中 $|$ 表示[按位或运算符](https://en.wikipedia.org/wiki/Bitwise_operation#OR)。 关于 Diavolo 的信息隐藏在 $ q $ 个问题中。每个问题关联一个正整数 $ v $,其答案是最小的下标 $ i $,使得 $ a_i > v $。如果不存在这样的 $ i $,则答案为 $ -1 $。请帮助 Giorno 回答这些问题!

输入格式

每个测试点包含多组测试用例。第一行包含测试用例数 $ t$($1 \le t \le 10\,000$)。每组测试用例的描述如下。 每组测试用例的第一行包含两个整数 $ n $ 和 $ q $($2 \leq n \leq 2 \cdot 10^5$,$1 \leq q \leq 2 \cdot 10^5$)。 第二行包含 $ n $ 个整数 $ a_1,a_2,\ldots,a_n $($0 \leq a_i \leq 10^9$),即定义模式的代码片段。 接下来的 $ q $ 行,每行包含一个整数 $ v_i $($0 \leq v_i \leq 10^9$),表示 Giorno 向你提出的第 $ i $ 个问题。 所有测试用例中 $ n $ 和 $ q $ 的总和不超过 $2 \cdot 10^5$。

输出格式

输出 $ q $ 个数字,第 $ i $ 个数字为 Giorno 提出的第 $ i $ 个问题的答案。

说明/提示

在第一个测试用例中,$ a = [2,1,3,3,\ldots] $。 - 对于第一个问题,$ a_1=2 $ 是最小下标且大于 $ 1 $ 的元素。 - 对于第二个问题,$ a_3=3 $ 是最小下标且大于 $ 2 $ 的元素。 - 对于第三个问题,没有下标 $ i $ 使得 $ a_i > 3 $。 由 ChatGPT 4.1 翻译