【做题记录】CF641E Little Artem and Time Machine
-
- 算法:cdq分治
题目:
给你一个带时间戳的可重集,进行 次操作:
-
在 时刻插入一个 。
-
在 时刻删除一个 。
-
询问在 时刻有几个 。
操作按照给的顺序进行。
操作形如 q t x
,q
表示操作的类型。
,。
题解:
首先一个显然的三维偏序:操作顺序、时间戳、 值。
然后第一维操作顺序本来就有序,所以不去动。
考虑 cdq 分治,左区间对右区间的影响。
假设 在左区间, 在右区间, 对 产生贡献当且仅当
那么对于 考虑维护一个桶即可。
记得离散化 。
由于连树状数组的维护都不需要,所以必须通过归并排序的写法来代替 sort
,时间复杂度还是能保证 。
本文作者:trsins
本文链接:https://www.cnblogs.com/trsins/p/15777658.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步