dijkstra的堆优化
核心:priority_queue< pair<int,int> > 用优先队列来取最近的点,就不用遍历找点了
在pq中,是按pair的第一个元素(first)由大到小排序的,所以pair<距离,点号>,注意因为要的是最小值,所以距离要存负值
其实距离是纯纯的工具人,我们只是需要它来维持点的排序
每次取队首h,取出的就是dis最短的点
还要注意:
如果这个点的dis不等于h的dis,说明这个点在入队之后被更新了,那么我们就不用这个点了,直接continue;
因为后面
原创
2022-05-16 20:31:43 ·
2478 阅读 ·
3 评论