#4295. Xor Cards

0

Xor Cards

Xor Cards

题目描述

有 NN 张编号为 1,…,N1, \dots, N 的卡片。卡片 i (1≤i≤N)i \, (1 \leq i \leq N) 的正面写有一个整数 AiA_i,背面写有一个整数 BiB_i。 考虑选择一个或多个卡片,使得被选择的卡片正面所写整数的按位异或之和不超过 KK。求被选择的卡片背面所写整数的按位异或之和的最大可能值。

什么是按位异或? 两个整数 $a$ 和 $b$ 的按位异或 $a \oplus b$ 定义如下。

在二进制表示中,2k2^k 位(k≥0k \geq 0)在 a⊕ba \oplus b 中为 11 当且仅当在 aa 和 bb 的二进制表示中恰好有一个在该位为 11;否则该位为 00。

例如,3⊕5=63 \oplus 5 = 6(二进制表示:011⊕101=110011 \oplus 101 = 110)。
一般地,kk 个整数 p1,…,pkp_1, \dots, p_k 的按位异或定义为 $(\cdots ((p_1 \oplus p_2) \oplus p_3) \oplus \cdots \oplus p_k)$。我们可以证明它与 p1,…,pkp_1, \dots, p_k 的顺序无关。

输入格式

输入按下述格式从标准输入给出: NN KK A1A_1 B1B_1 ⋮\vdots ANA_N BNB_N

输出格式

当选择一个或多个卡片使得被选择的卡片正面所写整数的按位异或之和不超过 KK 时,输出被选择的卡片背面所写整数的按位异或之和的最大可能值。如果不存在满足条件的选法,则输出 −1-1。

4 2
1 1
3 2
2 2
0 1
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

提示

1≤N≤10001 \leq N \leq 1000 0≤K<2300 \leq K \lt 2^{30} 0≤Ai,Bi<230 (1≤i≤N)0 \leq A_i, B_i \lt 2^{30} \, (1 \leq i \leq N) 输入中的所有值均为整数。选择第 11 和第 22 张卡片时,它们正面所写整数的按位异或为 22,背面所写整数的按位异或为 33,这是最大值。
不存在满足条件的卡片选择方法。

标签: AtCoder|abc249G

来源

AtCoder|abc249G