CF817E Choosing The Commander
题目描述
或许你还记得在上一轮中,Vova 正在玩一个名为 Rage of Empires 的策略游戏。
Vova 组建了一支庞大的军队,但却忘记了军队中最重要的人——指挥官。因此,他想雇佣一名指挥官,并希望选择一位能够获得战士尊敬的人。
每个战士都有其性格,用一个整数 $p_{i}$ 表示。每个指挥官有两个特征:性格 $p_{j}$ 和领导力 $l_{j}$(两个都是整数)。只有当 $p_{i} \oplus p_{j} < l_{j}$ 时,战士 $i$ 才会尊敬指挥官 $j$(其中 $\oplus$ 表示 $x$ 和 $y$ 的按位异或运算)。
起初,Vova 的军队是空的。共有三种不同类型的事件可能发生在军队中:
- $1\ p_{i}$ —— 一名性格为 $p_{i}$ 的战士加入 Vova 的军队;
- $2\ p_{i}$ —— 一名性格为 $p_{i}$ 的战士离开 Vova 的军队;
- $3\ p_{i}\ l_{i}$ —— Vova 尝试雇佣一位性格为 $p_{i}$、领导力为 $l_{i}$ 的指挥官。
对于每个第三类事件,Vova 想知道有多少战士(只统计已经加入但尚未离开的)会尊敬他尝试雇佣的指挥官。
输入格式
第一行包含一个整数 $q$($1 \leq q \leq 100000$),表示事件的数量。
接下来有 $q$ 行,每行描述一个事件:
- $1\ p_{i}$($1 \leq p_{i} \leq 10^{8}$)—— 一名性格为 $p_{i}$ 的战士加入 Vova 的军队;
- $2\ p_{i}$($1 \leq p_{i} \leq 10^{8}$)—— 一名性格为 $p_{i}$ 的战士离开 Vova 的军队(保证此时军队中至少有一名这样的战士);
- $3\ p_{i}\ l_{i}$($1 \leq p_{i}, l_{i} \leq 10^{8}$)—— Vova 尝试雇佣一位性格为 $p_{i}$、领导力为 $l_{i}$ 的指挥官。至少存在一个此类型事件。
输出格式
对于每一个第三类事件,输出一个整数,表示有多少战士会尊敬 Vova 尝试雇佣的这名指挥官。
说明/提示
在示例中,前两次事件后军队中有两名战士,性格分别为 $3$ 和 $4$。接着 Vova 试图雇佣一位性格为 $6$、领导力为 $3$ 的指挥官,只有一名战士尊敬他($3 \oplus 6 = 5 < 3$ 不成立,而 $4 \oplus 6 = 2 < 3$ 成立)。然后性格为 $4$ 的战士离开,再次尝试雇佣该指挥官时,没有任何战士会尊敬他。
由 ChatGPT 5 翻译