luogu#P7502. 「HMOI R1」不知道是啥的垃圾题

「HMOI R1」不知道是啥的垃圾题

题目背景

由于这是崩坏 3 round,所以这里应该有一个关于崩坏三的背景。然而 fz 不玩崩坏 3,而且他实在是太屑了,所以这题就变成了一道裸题。

题目描述

要求维护一个可重集,支持三种操作:

  1. 插入一个自然数对;
  2. 删除一个自然数对,保证这个数对之前在集合中;
  3. 给定一个自然数对 (x,y)(x,y),问集合中有多少个数对 (a,b)(a,b) 满足 xxora>yxorbx\operatorname{xor}a>y\operatorname{xor}b,其中 xor\operatorname{xor} 表示按位异或运算。

本题中所有“数对”均指有序数对。

输入格式

第一行一个自然数 MM 代表操作数。

接下来 MM 行,每行一个操作,格式如下:

  • 1 x y 表示插入自然数对 (x,y)(x,y)
  • 2 x y 表示删除自然数对 (x,y)(x,y),保证此时 (x,y)(x,y) 在集合中至少出现了一次;
  • 3 x y 表示查询自然数对 (x,y)(x,y)

输出格式

MM 行,每个询问输出一行一个自然数,表示询问的答案。

6
3 1 2
1 3 2
1 4 5
3 6 2
2 3 2
3 6 2

0
1
0

提示

对于样例,第一次查询时集合里没有任何数对,所以答案为 00

第二次查询时,集合为 {(3,2),(4,5)}\{(3,2),(4,5)\}6xor3=5>0=2xor26\operatorname{xor}3=5>0=2\operatorname{xor}26xor4=2<7=2xor56\operatorname{xor}4=2<7=2\operatorname{xor}5,故满足条件的数对只有 (3,2)(3,2) 一个,答案为 11

第三次询问时,集合为 {(4,5)}\{(4,5)\},没有满足条件的数对,答案为 00


对于所有数据:

  • 0M2×1050 \le M \le 2 \times 10^5
  • 0x,y10180 \le x, y \le 10^{18}

本题采用捆绑测试。

No. Constraints Score
11 M2000M \le 2000 1010
22 x,y<8x, y < 8 2020
33 x,yMx, y \le M 3030
44 No further constraints 4040

  • Idea: FZzzz
  • Solution: FZzzz
  • Code: FZzzz
  • Data: FZzzz