考虑把各个任务在时间上差分,问题转化为求前 k 大的数之和,
那么主席树同时维护一个总和 sum 即可。
所以建立 n 棵主席树,第 i 棵表示前 i 个时刻的信息。
因此建树的时候可以复用上一个时刻的主席树,直接修改并开新点。
注意离散化,以及空间大小。
此外由于题目中有可能出现主席树上查询的结点子树大小 <k 的情况,另外处理一下即可。
代码:
1 |
|
考虑把各个任务在时间上差分,问题转化为求前 k 大的数之和,
那么主席树同时维护一个总和 sum 即可。
所以建立 n 棵主席树,第 i 棵表示前 i 个时刻的信息。
因此建树的时候可以复用上一个时刻的主席树,直接修改并开新点。
注意离散化,以及空间大小。
此外由于题目中有可能出现主席树上查询的结点子树大小 <k 的情况,另外处理一下即可。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment