给定一个由非负整数构成的长度为 的序列 。你希望使序列中的所有元素都相等。
每次操作,你可以选择当前序列中相邻的两个元素 ,将它们合并为一个值为 的元素,并放在原来的位置。其中, 表示按位异或运算。每次操作后,序列的长度减少 ,其余元素的顺序保持不变。
例如,对于序列 ,合并前两个元素后,由于 ,序列会变为 。
求使序列中所有元素都相等所需的最少合并次数。如果所有元素已经相等,答案为 。只剩一个元素的序列也视为所有元素都相等。
输入从标准输入按以下格式给出:
对于每个测试用例,在一行中输出所需的最少合并次数。
第 1 个测试用例: 合并前两个元素 后,序列变为 。
第 2 个测试用例: 合并前两个元素 后,序列变为 。然后合并最后两个元素 ,序列变为 。
是测试用例的数量。每个测试用例 按以下格式给出:
| 2 | 33 | . |
| 3 | 11 |
|
| 4 | 47 | 추가적인 제약이 없다. |
第 3 个测试用例: 通过两次合并可以使序列只剩一个元素。