华附消消乐
You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.
说明
老师手上有 $n$ 个同学的成绩单, 第 $i$ 个同学的成绩为 $a_i$。
由于义务教育阶段不能公布排名,老师打算用这些成绩来玩消消乐。
每一轮,老师会取出两张成绩单,将两张成绩单上的成绩异或起来,异或的结果为本轮得分,然后销毁其中一张成绩单。
可想而知,经过 $n-1$ 轮的消消乐,只剩下一张成绩单。
最后,将老师的每一轮消消乐的得分相加,得到总得分。
请你帮老师计算一下,消消乐的总得分最多是多少。
C++里面,输出9和16的异或结果: cout<< (9^16);
异或定义:0^1=1^0=1, 0^0=1^1=0,可以理解为二进制下的不进位加法。
输入格式
第一行一个整数 $n$,表示成绩单的数量。
第二行有 $n$ 个整数,分别是 $a_1,a_2,...a_n$。
输出格式
一个整数,表示最高得分。
样例
4
3 5 12 6
34
提示
第一次选择5(0101)和12(1100),获得 9(1001)分,销毁5;
第二次选择3(0011)和12(1100),获得15(1111)分,销毁3;
第三次选择6(0110)和12(1100),获得10(1010)分,销毁6;
总得分为34.
可以证明没有更高得分的消去方法。
30% 数据, $n\le 20$, $1\le a_i \le 100$
另有20% 数据, $n\le 100$ , $0 \le a_i \le 2$
100% 数据, $n\le 2000$, $0 \le a_i \le 2^{30}-1$
2023-2024下信息提高组选修课期末考
- Status
- Done
- Rule
- IOI
- Problem
- 4
- Start at
- 2024-6-22 10:45
- End at
- 2024-6-24 4:45
- Duration
- 2 hour(s)
- Host
- Partic.
- 15