记第 天的答案为 ,则考虑从小到大扫描 维度并维护 的变化。对每个 而言,先更新 ,然后对 ,若 则 否则 。
直接模拟时间复杂度是 ,考虑优化。容易想到用按值排序的 fhq-treap 来维护,对每个 先把整个 treap 分裂成 和 的两个子 treap,然后对第一个 treap 全局减 第二个 treap 全局加 再合并两个 treap 即可(注意这里不能直接 merge 两个 treap,需要先选一个 treap 的根然后用这个根的 key 去 split 另外一个 treap)。因为最后还需要知道和下标的对应关系所以 treap 内还需要额外维护一个下标。
时间复杂度为 可以通过该题。
喜欢的话,留下你的评论吧~