CF1973B Cat, Fox and the Lonely Array

题目描述

今天,Cat 和 Fox 发现了一个由 $n$ 个非负整数组成的数组 $a$。 定义数组 $a$ 的“孤独度”为最小的正整数 $k$($1 \le k \le n$),使得对于任意两个正整数 $i$ 和 $j$($1 \leq i, j \leq n - k + 1$),都有: $$ a_i | a_{i+1} | \ldots | a_{i+k-1} = a_j | a_{j+1} | \ldots | a_{j+k-1} $$ 其中 $x | y$ 表示 $x$ 和 $y$ 的按位或运算。换句话说,对于所有长度为 $k$ 的连续子数组,它们的按位或结果都应相同。注意,$a$ 的孤独度是有定义的,因为当 $k = n$ 时条件一定成立。 Cat 和 Fox 想知道数组 $a$ 的孤独度是多少。请帮助他们计算所找到数组的孤独度。

输入格式

每组测试包含多个测试用例。第一行包含一个整数 $t$($1 \leq t \leq 10^4$),表示测试用例的数量。接下来是每个测试用例的描述。 每个测试用例的第一行包含一个整数 $n$($1 \leq n \leq 10^5$),表示数组 $a$ 的长度。 每个测试用例的第二行包含 $n$ 个整数 $a_1, a_2, \ldots, a_n$($0 \leq a_i < 2^{20}$),表示数组的元素。 保证所有测试用例中 $n$ 的总和不超过 $10^5$。

输出格式

对于每个测试用例,输出一个整数,表示给定数组的孤独度。

说明/提示

在第一个样例中,单个元素的数组的孤独度总是 $1$,所以答案是 $1$。 在第二个样例中,每个长度为 $k=1$ 的子数组的按位或都是 $2$,所以整个数组的孤独度是 $1$。 在第七个样例中,有 $(0 | 1 | 3) = (1 | 3 | 2) = (3 | 2 | 2) = (2 | 2 | 1) = (2 | 1 | 0) = (1 | 0 | 3) = 3$,所以对于 $k=3$ 条件成立。可以验证对于更小的 $k$ 条件不成立,因此答案确实为 $3$。 由 ChatGPT 4.1 翻译