vector<long long> Dijkstra(vector<vector<pair<int,int>>>& g, int s, int n) {
priority_queue<pair<long long, int>, vector<pair<long long, int>>, greater<pair<long long,int>>> que;
vector<long long> d(n, 1e18);
d[s] = 0;
que.push({0,s});
while(!que.empty()) {
auto [d1, v1] = que.top();
que.pop();
if(d1 > d[v1]) {
continue;
}
for(auto [v2, d2]:g[v1]) {
if(d[v2] > d[v1] + d2) {
d[v2] = d[v1] + d2;
que.push({d[v2], v2});
}
}
}
return d;
}
03-07
8万+
05-24
2053
04-02
1440
06-22
7万+
10-24
1957