题目背景
愿你们能够不被此题所迷倒。
题目描述
小 L 一共有 n 瓶饮料需要拿走,第 i 瓶饮料的重量为 ai。小 L 将会分 x 轮拿饮料(1≤x≤n,x 自定)。每一轮拿饮料,她拿走第 i 瓶(此轮第 1 瓶)饮料耗费的精力值为 ai;假设这轮原来已经耗费 k 的精力值,之后再拿走第 j(1≤j≤n)瓶饮料,则拿走这瓶饮料将新耗费 (k&aj)+(k⊕aj)−k 精力值(& 表示按位与,⊕ 表示按位异或)。每一轮拿的饮料都是位置连续的一段饮料。我们设第 i 轮拿完饮料总共消耗了 li 精力值,请你求出 i=1∑xli。
简易题面:
小 L 的面前有 n 瓶饮料,第 i 瓶的重量为 wi。她会分成若干轮把所有饮料全部拿走,第 p 轮中拿走的第 k 瓶(设拿走的第 k 瓶饮料编号为 d)会花费体力 $f_{p,k}=\begin{cases}a_d&(k=1)\\(a_d\operatorname{and}\sum\limits_{1\leqslant j<k}f_{p,j})+(a_d\operatorname{xor}\sum\limits_{1\leqslant j<k}f_{p,j})-\sum\limits_{1\leqslant j<k}f_{p,j}&(k\geqslant2)\end{cases}$。若第 p 轮拿走了 c 瓶饮料,则该轮耗费的体力 sp=k=1∑cfp,k。若小 L 用了 m 轮把饮料拿完,请问 p=1∑msp 最小为多少。
输入格式
第一行输入一个数 n。
第二行输入 n 个数,第 i 个数表示 ai。
输出格式
共一行,一个数,表示最小的 ∑i=1xli。
4
1 3 8 12
15
提示
【样例解释】
- 拿走第二瓶饮料,新耗费 3 精力值。
- 拿走第一瓶饮料,新耗费 (3&1)+(3⊕1)−3=0 精力值,并将这两瓶饮料拿走,结束这轮。
- 拿走第三瓶饮料,新耗费 8 精力值。
- 拿走第四瓶饮料,新耗费 (8&12)+(8⊕12)−8=4 精力值,将这两瓶饮料拿走,结束这轮。
总共耗费 3+0+8+4=15 精力值。
【数据范围】
对于 100% 的数据:1≤n≤106,0≤∑i=1xli≤263−1,0≤ai≤263−1。
| 数据点 |
n≤ |
特殊性质 |
| 1 |
9 |
无 |
| 2∼3 |
103 |
∑l≤25−1 |
| 4 |
无 |
| 5∼10 |
106 |