说明
要求维护一个可重集,支持三种操作:
- 插入一个自然数对;
- 删除一个自然数对,保证这个数对之前在集合中;
- 给定一个自然数对 (x,y),问集合中有多少个数对 (a,b) 满足 xxora>yxorb,其中 xor 表示按位异或运算。
本题中所有“数对”均指有序数对。
输入格式
第一行一个自然数 M 代表操作数。
接下来 M 行,每行一个操作,格式如下:
1 x y 表示插入自然数对 (x,y);
2 x y 表示删除自然数对 (x,y),保证此时 (x,y) 在集合中至少出现了一次;
3 x y 表示查询自然数对 (x,y)。
输出格式
共 M 行,每个询问输出一行一个自然数,表示询问的答案。
6
3 1 2
1 3 2
1 4 5
3 6 2
2 3 2
3 6 2
0
1
0
提示
对于样例,第一次查询时集合里没有任何数对,所以答案为 0。
第二次查询时,集合为 {(3,2),(4,5)},6xor3=5>0=2xor2,6xor4=2<7=2xor5,故满足条件的数对只有 (3,2) 一个,答案为 1。
第三次询问时,集合为 {(4,5)},没有满足条件的数对,答案为 0。
对于所有数据:
- 0≤M≤2×105;
- 0≤x,y≤1018。
本题采用捆绑测试。
| No. |
Constraints |
Score |
| 1 |
M≤2000 |
10 |
| 2 |
x,y<8 |
20 |
| 3 |
x,y≤M |
30 |
| 4 |
No further constraints |
40 |
- Idea: FZzzz
- Solution: FZzzz
- Code: FZzzz
- Data: FZzzz