#P14312. 【模板】K-D Tree
【模板】K-D Tree
题目背景
请注意本题不同寻常的时空限制。
题目描述
在 维空间中,有一个由整点构成的可重集 (初始为空), 中每个点都有一个权值。记整点 的第 维坐标为 。
你需要维护三种操作:
- 操作一:向 中插入点 ,权值为 。
- 操作二:给定整点 与整点 ,将满足 且 $\forall d\in\{1,2,\cdots,k\},x_d(A)\le x_d(C)\le x_d(B)$ 的所有整点 的权值增加 。
- 操作三:给定整点 与整点 ,查询满足 且 $\forall d\in\{1,2,\cdots,k\},x_d(A)\le x_d(C)\le x_d(B)$ 的所有整点 权值之和。
本题强制在线。
输入格式
第一行两个整数 ,表示空间维数与操作次数。
接下来 行,每行若干个整数,描述一次操作:
- 若第一个整数为 ,接下来 个整数 ,表示加密后的整点 的坐标和权值。
- 若第一个整数为 ,接下来 个整数 ,表示加密后的整点 和 的坐标以及权值增量。
- 若第一个整数为 ,接下来 个整数 ,表示加密后的整点 和 的坐标。
- 对于加密后的数据 ,原数据 满足 ,其中 为按位异或运算, 为上次操作三的答案(初始为 )。
输出格式
若干行,每行一个整数,依次为所有操作三的答案。
2 10
1 1 4 2
3 1 5 5 5
1 4 2 5
1 2 4 2
2 1 3 3 4 2
3 2 4 5 4
3 5 6 0 7
1 7 4 7
3 7 7 6 1
3 5 6 0 0
0
4
5
4
13
3 9
1 1 3 2 3
1 4 3 1 5
1 4 4 4 2
1 2 1 5 3
3 2 3 1 3 4 5
1 5 5 4 3
2 5 5 3 6 6 6 1
3 1 2 1 4 5 5
3 9 9 9 15 15 14
0
10
6
提示
「样例解释 #1」
:::info[解密后的输入]
2 10
1 1 4 2
3 1 5 5 5
1 4 2 5
1 2 4 2
2 1 3 3 4 2
3 2 4 5 4
3 1 2 4 3
1 2 1 2
3 2 2 3 4
3 1 2 4 4
:::
最后一次询问的范围包含 三个整点,他们的权值之和为 。
「样例解释 #2」
:::info[解密后的输入]
3 9
1 1 3 2 3
1 4 3 1 5
1 4 4 4 2
1 2 1 5 3
3 2 3 1 3 4 5
1 5 5 4 3
2 5 5 3 6 6 6 1
3 1 2 1 4 5 5
3 3 3 3 5 5 4
:::
最后一次询问的范围包含 两个整点,他们的权值之和为 。
「数据范围」
对于所有测试数据,保证:
- 操作一满足解密后的 且 ;
- 操作二满足解密后的 且 ;
- 操作三满足解密后的 。
| 子任务 | 特殊性质 | 分值 | ||
|---|---|---|---|---|
| 不含操作二 | ||||
| ^ | 无 | |||
| 不含操作二 | ||||
| ^ | 无 | |||
请注意 与 没有同时达到各自数据范围的上界。