• 【问卷调查奖励发放公告】

    感谢大家积极参与本次 MineBBS 社区问卷调查。200 金粒的参与奖励已完成发放。部分用户发放失败,请【点击此处】 查看详情。

C语言 【C with STL】单源最短路之dijkstra算法

JiansYuan

【Lv:3】

注册
2020/05/09
消息
19
金粒
4,819金粒
呃呃呃
[MD]
```cpp
#include <bits/stdc++.h>
using namespace std;
const int N = 1008600;
vector<pair<long long, long long> > g[N];
long long d[N];
bool vis[N];
priority_queue<pair<long long, long long> > q;
int main(){
memset(vis, false, sizeof vis);
long long n, m, s;
scanf("%lld %lld %lld", &n, &m, &s);
for(long long i = 1; i <= n; i++) d = 2147483647;
for(long long i = 0; i < m; i++) {
long long u, v, w;
scanf("%lld %lld %lld", &u, &v, &w);
g.push_back({v, w});
}
d = 0;
q.push({0, s});
while(!q.empty()) {
long long u = q.top().second;
q.pop();
if(vis) continue;
vis = true;
for(size_t i = 0; i < g.size(); i++) {
long long v = g.first,
w = g.second;
if(d[v] > d + w) {
d[v] = d + w;
q.push({-d[v], v});
}
}
}
for(long long i = 1 ; i <= n; i++) printf("%lld ", d);
return 0;
}
```

[/MD]
 

在线会员

  • frea
  • 小虎
  • Ami
  • 铭记mingji
  • Boc
  • Little_Man
  • Polaris_Stella
  • postyizhan
  • Yuncojoy
  • 12wqa
  • Jahre
后退
顶部 底部