题目大意:
你现在有 \(n\) 个任务,每个任务有 \(t_{i},p_{i}\),表示你如果能在前 \(t_{i}\) 天做完这个任务,那么你会有 \(p_{i}\) 的收益,每个任务都要恰好做一天。
任务是善变的,一开始没有任何任务,你要维护 \(q\) 次操作,每次操作删除或添加一个任务,每次修改后问答案。
\(n,t \le 3 \times 10^5\)
解题思路:
对于一组任务,能同时完成他们当且仅当 \(\forall_{t} t \ge \sum [t_{i} \le t]\)。
考虑这个过程直接维护并不好维护,所以我们考虑加入/删除一个任务的可能的变化。
由于这个题类似后缀减,所以所选的任务最多有 \(O(1)\) 变化。
拿两个线段树维护,一个里面放 multiset,为了记录当前所选的任务的 \(p\) 最小值。
另一个表示 \(t - \sum[a_{i} \le t]\),为了检查要修改哪个。
\(O(n \log^2 n)\)。
为什么总是想不到维护修改量呢?
直接不好去维护那就去想想修改量吧。