警告后人,如果你用的是堆优化Dij

P4779 【模板】单源最短路径(标准版)

__youzimo2014__ @ 2024-08-07 17:07:34

  1. STL 提供的优先队列 priority_queue 是大顶堆,但是它认小于号,所以比较函数得反着写。
  2. pair 比较方法是先比 first 再比 second

如果你不想把比较函数反着写(或者你用的是 pair),可以试试 priority_queue<nod, vector<nod>, greater<nod>>


by __youzimo2014__ @ 2024-08-07 17:10:45

补充一下:由于 greater 是以大于号作基础的,所以需要重载大于号。


by flowercode @ 2024-08-10 14:56:54

插入的时候边权为x,改成-x就可以,访问得到的再改回正数。


|