对于优先队列的疑问

灌水区

@[MY(一名蒟蒻)](/user/240191) 1.优先队列无法删除指定元素,因为优先队列本质上是大根堆,删除指定元素后破坏大根堆的性质,从而用更长的时间去维护大根堆,因此优先队列无法删除指定元素(STL容器本来就是提高效率的,不可能搞个这么大复杂度的东西) 2.优先队列删除操作O(log(n)),访问O(1),你遍历一遍不可能是O(n),是O(n Log(n)) 提示:multiset的效率确实比优先队列效率要高
by 已注销W27%&jDO @ 2022-08-15 23:36:17


@[MY(一名蒟蒻)](/user/240191) 第二个自己手写堆,然后暴力枚举堆里的所有节点(不删节点),好像就能 $O(n)$ 了。 (错了轻喷qwq)
by osfly @ 2022-08-15 23:41:52


@[MY(一名蒟蒻)](/user/240191) 第一个的话另开一个优先队列,然后把不是删除的数倒进新开的队列,删后再倒回去 ~~暴力大法好~~
by osfly @ 2022-08-15 23:43:37


上一页 |