U652412 [YCU Cup] Aerhuo 的位运算特训

题目背景

**Aerhuo** 发现 **HM** 虽然擅长搜索算法,但对位运算的理解还不够深刻。于是,Aerhuo 拿出了一堆写满数字的卡片,准备对其进行特训。

题目描述

Aerhuo 给了 HM 一个包含 $n$ 个非负整数的数组 $a$。 HM 每次可以选择数组中的任意两个数 $a_i, a_j$(下标 $i \neq j$),将 $a_j$ 从数组中扔掉,并将 $a_i$ 修改为 $a_i \ \text{AND} \ a_j$(按位与)。 HM 可以进行任意次上述操作。 **目标**:HM 希望用**最少的操作次数**,使得数组中**至少出现一个 0**。 请你告诉 HM 这个最少操作次数是多少。 (注:初始数组保证所有元素的按位与之和为 0,即一定有解)。 **本题包含多组测试数据。**

输入格式

第一行包含一个整数 $T$ ($1 \le T \le 1000$),表示测试数据的组数。 接下来对于每组测试数据: - 第一行包含一个整数 $n$,表示数组大小。 - 第二行包含 $n$ 个整数 $a_1, a_2, \dots, a_n$。

输出格式

对于每组测试数据,输出一行一个整数,表示最少操作次数。

说明/提示

**样例 1 解释**: - 第一组:直接选 $1$ 和 $2$,做与运算 $1 \& 2 = 0$。操作 1 次。 - 第二组: - 第一次:选 $3 (011)$ 和 $5 (101)$,变成 $3 \& 5 = 1 (001)$。 - 第二次:选 $1$ 和 $6 (110)$,变成 $1 \& 6 = 0$。 - 共 2 次。 ## 数据范围 对于 $100\%$ 的数据, $1 \le T \le 1000$, $1 \le n \le 2000$,且单测试点数据 $\sum n^2 \le 4 \cdot 10^6$。 $0 \le a_i < 2^{15}$。