编程题
### 问题描述 大衣有一个长度为 $N$ 的数组 $A$。 请找出数组 $A​$ 中最长的子数组,满足子数组中所有元素的按位或等于数组 $A​$ 中剩余元素的按位或。 如果不存在这样的子数组输出 $-1​$,否则输出最长子数组的长度。 ### 输入格式 第一行输入一个正整数 $T​$ 表示测试数据的组数。 接下来 $T​$ 组测试数据每组输入两行: - 第一行输入一个正整数 $N​$ 表示数组 $A​$ 的长度。 - 第二行输入 $N​$ 个整数 $A_1,A_2,\cdots,A_N​$ 表示数组 $A​$ 的元素。 ### 输出格式 对于每组测试数据,如果存在满足条件的子数组,输出最长子数组的长度,否则输出 $-1$,并换行。 ### 样例输入 ```text 3 3 1 2 4 3 1 3 2 4 2 3 4 7 ``` ### 样例输出 ```text -1 1 3 ``` ### 说明 样例 $1$:数组 $A$ 中不存在子数组满足题目要求。 样例 $2​$:考虑长度为 $1​$ 的子数组 $[3]​$,它的元素按位或为 $3​$,剩余的元素按位或为 $1|2=3​$,因为它们相等,所以满足题目要求。 样例 $3​$:考虑长度为 $3​$ 的子数组 $[2,3,4]​$,它的元素按位或为 $2|3|4=7​$,剩余的元素按位或为 $7​$,因为它们相等,所以满足题目要求。 ### 评测数据规模 对于所有的评测数据,$1\le T\le 20$,$1\le N\le 10^4$,$1\le A_i<2^{30}$。
查看答案
赣ICP备20007335号-2