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> > >