#题解
题目大意 给你n个数 让你组成一个集合 要求集合量量元素间异或后的结果小于两个数
找规律发现当两个数字最高位二进制相同的时候才满足条件 即为相同二进制最高位的数字数量
#AC代码
#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int INF = 0x3f3f3f3f;
const int MAXN = 40;
int a[MAXN];
int bt(int x)
{
int cnt = 0;
while (x)
{
x >>= 1;
cnt++;
}
return cnt;
}
int main()
{
#ifdef LOCAL
freopen("C:/input.txt", "r", stdin);
#endif
int T;
cin >> T;
while (T--)
{
memset(a, 0, sizeof(a));
int n;
scanf("%d", &n);
int ans = 0;
for (int i = 0; i < n; i++)
{
int e;
scanf("%d", &e);
ans = max(ans, ++a[bt(e)]);
}
printf("%d\n", ans);
}
return 0;
}