ことばがありあまれどなお、 このゆめはつづ|

trsins

园龄:3年10个月粉丝:18关注:2

【做题记录】CF641E Little Artem and Time Machine

  • CF641E Little Artem and Time Machine

    • 算法:cdq分治

题目:

给你一个带时间戳的可重集,进行 n 次操作:

  1. t 时刻插入一个 x

  2. t 时刻删除一个 x

  3. 询问在 t 时刻有几个 x

操作按照给的顺序进行。

操作形如 q t xq 表示操作的类型。

1n1051t,x109

题解:

首先一个显然的三维偏序:操作顺序、时间戳、x 值。

然后第一维操作顺序本来就有序,所以不去动。

考虑 cdq 分治,左区间对右区间的影响。

假设 i 在左区间, j 在右区间,ij 产生贡献当且仅当

ti<tj,xi=xj

那么对于 x 考虑维护一个桶即可。

记得离散化 x

由于连树状数组的维护都不需要,所以必须通过归并排序的写法来代替 sort,时间复杂度还是能保证 O(nlogn)

本文作者:trsins

本文链接:https://www.cnblogs.com/trsins/p/15777658.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   trsins  阅读(28)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示