#AT2155. G - Xor Cards
G - Xor Cards
当前没有测试数据。
G - 异或卡片
得分:$600$ 分
问题描述
有 $N$ 张编号为 $1, \dots, N$ 的卡片。卡片 $i$ ($1 \leq i \leq N$) 的正面写着整数 $A_i$,背面写着整数 $B_i$。
考虑选择一张或多张卡片,使得所选卡片正面的整数的异或和不超过 $K$。求所选卡片背面整数的最大可能异或和。
什么是异或和?
两个整数 $a$ 和 $b$ 的异或和 $a \oplus b$ 定义如下。- $a \oplus b$ 在二进制表示中,对于 $k \geq 0$,如果 $a$ 和 $b$ 的二进制表示在第 $2^k$ 位上有且只有一个为 $1$,则 $a \oplus b$ 在第 $2^k$ 位上为 $1$,否则为 $0$。
一般而言,$k$ 个整数 $p_1, \dots, p_k$ 的异或和定义为 $(\cdots ((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k)$。我们可以证明,这个和与 $p_1, \dots, p_k$ 的顺序无关。
约束条件
- $1 \leq N \leq 1000$
- $0 \leq K \lt 2^{30}$
- $0 \leq A_i, B_i \lt 2^{30} \, (1 \leq i \leq N)$
- 输入中的所有值都是整数。
输入
从标准输入中按以下格式输入:
输出
当选择一张或多张卡片,使得所选卡片正面的整数的异或和不超过 $K$ 时,请输出所选卡片背面整数的最大可能异或和。如果无法选择满足要求的卡片,请输出 $-1$。
4 2
1 1
3 2
2 2
0 1
3
选择卡片 $1$ 和卡片 $2$,它们正面整数的异或和为 $2$,背面整数的异或和为 $3$,这是最大的。
1 2
3 4
-1
无法选择满足条件的卡片。
10 326872757
487274679 568989827
267359104 968688210
669234369 189421955
1044049637 253386228
202278801 233212012
436646715 769734012
478066962 376960084
491389944 1033137442
214977048 1051768288
803550682 1053605300
1064164329