UOJ Logo 蜗牛编程训练题库

JZOJ

#1520. [2021CSP-J]模拟赛#7-T5--超级蜗牛游戏

统计
时间限制:1s    空间限制:256MB    输入文件:superbull.in    输出文件:superbull.out
当前24小时内您还剩30次提交本题的机会

题目描述 superbull.cpp

现在有N(1 <= N <= 2000)只蜗牛在玩 超级蜗牛 游戏。每只蜗牛有一个唯一的ID,ID范围是$ 1 ... 2 ^ {30}-1$。

超级蜗牛比赛是淘汰赛 - 每场比赛后,输者退赛,赢者继续留在比赛,直到只剩一队游戏结束。

输赢是蜗牛老师自己决定的,或者说结果可以任意决定!

比赛的积分规则十分奇葩:积分=第一队的ID$ xor$ 第二队的ID。c++ 的运算符为 ^ 。

比如,12队和20队打比赛,积分是24,因为$01100 xor 10100 = 11000$。

蜗牛老师认为,分越高越刺激。所以他想让总积分最高。请帮助蜗牛老师设计比赛。

输入格式 superbull.in

第一行包含一个整数N

以下N行包含N个队伍的ID。

输出格式 superbull.out

一行,一个整数,表示答案。

样例数据

input

4
3
6
9
10

output

37

输出详情:实现37的一种方法如下:

3 VS 9 ==》9胜,本场积分 3 XOR 9 = 10,目前队伍:6 9 10

6 VS 9 ==》6胜,本场积分 6 XOR 9 = 15,目前队伍:6 10

6 VS 10 ==》管他谁胜呢反正不用再比赛了,本场积分 6 XOR 10 = 12

总积分 10 + 15 + 12 = 37。

团队6和10面脱落,和队10胜。

拿下点的总数是(10)+(15)+(12)=

注:按位异或运算,由^符号通常表示,是进行逻辑异或运算的两个二进制整数的每个位置逐位操作。 规则如下 0 xor 0 = 0 0 xor 1 = 1 1 xor 0 = 1 1 xor 1 = 0 例如:

10100(十进制20)
XOR
01100(十进制12)
=======================
11000(十进制24)

数据规模与约定

时间限制:$1 \text {s}$

空间限制:$256 \text {MB}$

解题讨论区

标题 发表者 发表日期