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}$。