A92167.Welcome24ever 与吸血鬼
普及-
官方
通过率:0%
时间限制:1.00s
内存限制:128MB
题目描述
有 n 个吸血鬼,它们的强度为 a1,a2,…,an。把一段连续区间记作 (l,r)。该组的“强度”定义为
f(l,r)=al & al+1 & ⋯ & ar,
其中 & 为按位与。
Welcome24ever 想把这 n 个吸血鬼分成若干个不相交的连续组(每个吸血鬼恰好属于一个组),使得所有组强度之和尽量小;在所有能达到最小和的划分中,她还想让组的个数尽量多。求这个“组数最多”的值。
输入格式
- 第一行一个整数 t(1≤t≤104),表示测试用例数量。
- 对于每个测试用例:
- 第一行一个整数 n(1≤n≤2×105)。
- 第二行 n 个整数 a1,…,an(0≤ai≤109)。
- 保证所有测试用例的 n 之和不超过 2×105。
输出格式
- 对每个测试用例,输出一个整数,表示在“强度和最小”的前提下,组数的最大值。
输入输出样例
输入#1
3 3 1 2 3 5 2 3 1 5 2 4 5 7 12 6
输出#1
1 2 1
说明/提示
在第一个测试用例中,最优的方式是将所有的吸血鬼作为一组。
所以 f(1,3)=1 & 2 & 3=0。
在第二个测试用例中,最优的方式是分成两组,(2,3,1) 和 (5,2)。所以 f(1,3)+f(4,5)=(2 & 3 & 1)+(5 & 2)=0+0=0。