P14947 Minpopcount

题目描述

Rikka 有一个集合 $S$,包含 $[0, 2^k)$ 之内的元素,初始为空。接下来,$q$ 个事件将会发生,每个属于以下两种之一: 1. 给出一个整数 $x \in [0, 2^k)$,把 $x$ 插入到 $S$ 中。保证 $x$ 在此次操作之前不在 $S$ 中。 2. 给出一个整数 $x \in [0, 2^k)$。对所有 $y \in S$,计算 $\operatorname{popcount}(x \oplus y)$ 的最小值。保证此次操作之前 $S$ 非空。 请通过告诉她所有类型 $2$ 事件的正确答案,帮助 Rikka 解决这个问题。

输入格式

第一行,两个整数 $q$ 和 $k$($1 \leq q \leq 5\cdot 10^6$,$1 \leq k \leq 20$),表示事件个数和值域的大小。 接下来 $q$ 行,每行包含两个整数 $o$ 和 $x$($o \in \{1, 2\}$,$0 \leq x < 2^k$),描述一次事件,其中 $o$ 是事件的类型,$x$ 是事件的参数。

输出格式

对于每种类型 $2$ 事件,输出一行一个整数表示答案。

说明/提示

对于第一个样例,第一个查询发生时有 $x = 5$ 且 $S = \{2, 3\}$,其中 $\operatorname{popcount}(5 \oplus 2) = 3$,$\operatorname{popcount}(5 \oplus 3) = 2$,因此查询的答案为 $2$。第二个查询发生在 $x = 6$ 且 $S = \{2, 3, 4\}$ 时,其中 $\operatorname{popcount}(6 \oplus 2) = 1$,$\operatorname{popcount}(6 \oplus 3) = 2$,$\operatorname{popcount}(6 \oplus 4) = 1$,因此查询的答案为 $1$。