警钟撅烂

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

mamoumou @ 2024-07-20 20:22:11

1.若使用优先队列,并且使用的是struct,则重载运算符时要反着写,如图

bool operator <(const Tq &rhs) const{
    return dis>rhs.dis;
}

2.若你使用的pair,则入队时需要将dis取负

3.错误原因:priority_queue为大根堆!!!!


by niumachaoren @ 2024-07-24 08:49:58

@mamoumou 用优先队列声明一下greater就可以了,就变成小根堆递增排列了 priority_queue<pair<ll,int>,vector<pair<ll,int> >,greater<pair<ll,int> > >


|