O(W+q) 堆(离线)
需要实现的操作:
- 将
x 插入集合中。 - 查询集合元素的最小值。
- 将最小值从集合中删除。
考虑把插入操作单独列出,记为序列
此时对 sort 就会导致复杂度变成
这时侯
- 此时对于
1 \le j < i ,a_j 不在堆中。 -
因为删除操作所删除的的是当前的最小值,查询操作只和当前最小值有关,所以当堆顶的值小于
但是上面的做法是
发现
只适合
需要实现的操作:
考虑把插入操作单独列出,记为序列
此时对 sort 就会导致复杂度变成
这时侯
因为删除操作所删除的的是当前的最小值,查询操作只和当前最小值有关,所以当堆顶的值小于
但是上面的做法是
发现
只适合