auto dj = [&](int start, vector<long long>& dis, vector<vector<pair<int,int>>>& mp){
priority_queue<pair<long long,int>> q;
dis[start] = 0;
q.push({0, start});
while(!q.empty()){
auto [cost, cur] = q.top();
q.pop();
if(cost>dis[cur]) continue;
for(auto [next, distance]: mp[cur]){
if(dis[next]<=cost+distance) continue;
dis[next] = cost+distance;
q.push({dis[next], next});
}
}
};
Dijkstra函数模板(c++)
最新推荐文章于 2023-04-28 17:41:55 发布