#CF1926D. Vlad and Division
Vlad and Division
题目描述
Vladislav 有 个非负整数,他想将这些数分成若干组,使得在每一组中,任意一对数在第 位到第 位(即二进制表示的最低 位)上都没有相同的比特值。
对于一个整数 ,记 表示其二进制表示中从右往左第 位(从 开始编号)。例如,若 ,因为 ,则 ,,,,,,,,,。
形式化地说,对于同一组内的任意两个数 和 ,都必须满足对于所有 ,都有 。
Vlad 需要的最小分组数是多少?每个数必须恰好属于一个组。
输入格式
第一行包含一个整数 (),表示测试用例的数量。
每个测试用例的第一行包含一个整数 (),表示整数的数量。
每个测试用例的第二行包含 个整数 ()。
所有测试用例中 的总和不超过 。
输出格式
对于每个测试用例,输出一个整数,表示满足条件所需的最小分组数。
样例
9
4
1 4 3 4
2
0 2147483647
5
476319172 261956880 2136179468 1671164475 1885526767
3
1335890506 811593141 1128223362
4
688873446 627404104 1520079543 1458610201
4
61545621 2085938026 1269342732 1430258575
4
0 0 2147483647 2147483647
3
0 0 2147483647
8
1858058912 289424735 1858058912 2024818580 1858058912 289424735 122665067 289424735
4
1
3
2
2
3
2
2
4
样例说明
在第一个测试用例中,任意两个数的最后 位都相同,因此需要将每个数单独分组。
在第二个测试用例中,,,它们可以放在同一组,因为对于每个 ,都有 。
由 ChatGPT 4.1 翻译
来源
Codeforces 1926D,英文题名 Vlad and Division。