【MX-X6-T6】機械生命体

题目背景

原题链接:<https://oier.team/problems/X6G>。 --- > _許してよ、もう$\\$ 分かってよ$\\$ 此処の正体を$\\$ 僕ですら僕を$\\$ 愛せないんだって$\\$ 感情を持った代償をくれよ$\\$ 狂っている_ > > _—— [機械生命体 - Nanatsukaze](https://music.163.com/#/song?id=2627128854)_ 二进制的运算和记忆,能够在机械生命体中还原出人类的情感吗?

题目描述

维护一个**可重集** $S$,初始为空。支持如下操作: - `1 x`,你需要在 $S$ 中加入一个数 $x$。 - `2 x`,你需要在 $S$ 中删除一个数 $x$。保证此时 $S$ 中存在至少一个 $x$。如果存在多个 $x$,则仅删除一个。 - `3 x k v`,你需要对 $S$ 中所有满足 $\operatorname{lowbit}(x\oplus y)\geq 2^k$ 的 $y$ 增加 $v$ 并对 $2^{32}$ 取模。 - `4 x`,你需要求出 $\max\limits_{y\in S} \operatorname{lowbit}(x\oplus y)$。保证此时 $S$ 不为空。 其中 $\operatorname{lowbit}(x)$ 表示最大的整数 $k$,使得 $k$ 是 $2$ 的整数次幂并且整除 $x$。$\oplus$ 代表[按位异或](https://baike.baidu.com/item/%E5%BC%82%E6%88%96/10993677)。 **特殊的,我们在本题定义 $\boldsymbol{\textbf{lowbit}(0)=2^{32}}$。**

输入输出格式

输入格式


第一行一个整数 $q$,代表询问数量。 接下来 $q$ 行,每行首先输入一个整数 $opt$ 表示操作类型;如果 $opt=3$,则接下来依次输入三个整数 $x,k,v$,否则接下来输入一个整数 $x$。

输出格式


对每一次 `4` 操作,输出一个整数代表答案。

输入输出样例

输入样例 #1

11
1 1
1 2
1 2
1 3
1 4
4 10
3 2 1 2
2 4
4 16
2 4
4 16

输出样例 #1

8
4
2

说明

**【样例解释】** 第 $6$ 次操作时,集合为 $\{1,2,2,3,4\}$,查询 $10$ 时,$\operatorname{lowbit}(10\oplus 2)=\operatorname{lowbit}(8)=8$ 为最大值。 第 $7$ 次操作后,所有 $\operatorname{lowbit}(x\oplus 2)\geq 2^1$ 的数增加 $2$,集合中满足条件的数有 $2,2,4$,于是集合变为 $\{1,3,4,4,6\}$。 第 $8$ 次操作删去一个 $4$,集合变为 $\{1,3,4,6\}$。 第 $9$ 次操作查询 $16$,$\operatorname{lowbit}(16\oplus 4)=\operatorname{lowbit}(20)=4$ 为最大值。 第 $10$ 次操作再次删去一个 $4$,集合变为 $\{1,3,6\}$。 第 $11$ 次操作查询 $16$,$\operatorname{lowbit}(16\oplus 6)=\operatorname{lowbit}(22)=2$ 为最大值。 **【数据范围】** 对于所有数据,$1\leq q\leq 5\times 10^5$,$0\leq x,y,v\leq 2^{32}-1$,$0\leq k\leq 32$。 **捆绑测试**,共 5 个 Subtask,具体限制如下所示: - Subtask 1(7 pts):$q\leq 10^3$。 - Subtask 2(16 pts):不存在 3 操作。 - Subtask 3(21 pts):对于 3 操作,$k=0$。 - Subtask 4(28 pts):对于 3 操作,$v=1$。 - Subtask 5(28 pts):无特殊限制。