任务查询系统 【主席树】

洛谷P3168  任务查询系统

主席树必刷经典题。

这里我用的是给每个时间点建……,然后区间修改,单根节点查询。

首先,区间修改不好实现,我们利用差分思想,修改两个端点的值求前缀和。

所以我们要先对区间排序,然后再按顺序建树,以求前缀和。

接着,离散化,求出排名 rk,开始 insert(sm可能>1,可能存在相同的优先级)

最后,查询。如果 K>区间的值的个数,则直接加上整个区间的答案。

否则一直递归,如果到叶节点了,求出单位的值,*k 就是对答案的贡献。

代码就不贴了,网上自己找吧。

猜你喜欢

转载自www.cnblogs.com/Frank-King/p/9860017.html