题目:对一个 nnn 个顶点,mmm 条边的带正权有向简单图使用 Dijkstra 算法计算 单源最短路时,如果再使用一个可以在 Θ(logn)\Theta(\log n)Θ(logn) 时间复杂度内查询堆内最 小值、在 Θ(n)\Theta(\sqrt{n})Θ(n) 时间复杂度内合并两个堆、在 Θ(1)\Theta(1)Θ(1) 时间复杂度内将堆内一个元素变小、在 Θ(logn)\Theta(\log n)Θ(logn) 时间复杂度内弹出堆内最小值的堆优化 Dijkstra 算法,则整个 Dijkstra 算法的时间复杂度为 ( O(m+nlogn)O(m + n \log n)O(m+nlogn) )
书上写的是 O((m+n)logn)O((m+n) \log n)O((m+n)logn) ,这道题目的堆有什么特殊之处吗?