社区讨论
help awa
P3371【模板】单源最短路径(弱化版)参与者 2已保存回复 2
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 2 条
- 当前快照
- 1 份
- 快照标识符
- @lobspcw8
- 此快照首次捕获于
- 2023/10/30 02:19 2 年前
- 此快照最后确认于
- 2023/11/04 06:48 2 年前
CPP
#include <bits/stdc++.h>
#define MAXN 10005
#define MAXM 500005
#define INF 0x7fffffff
using namespace std;
struct EDGE {
int t, n, w;
}e[MAXM];
int n, m, s, cnt, dis[MAXN], head[MAXM];
priority_queue<int> q;
bool vis[MAXN];
inline void addnode(int a, int b, int w) {
e[++cnt].t = b;
e[cnt].w = w;
e[cnt].n = head[a];
head[a] = cnt;
}
int main() {
cin >> n >> m >> s;
for(int i = 1; i <= m; i++) {
int a, b, w;
cin >> a >> b >> w;
addnode(a, b, w);
}
for(int i = 1; i <= n; i++)
dis[i] = INF;
dis[s] = 0;
q.push(-s);
while(!q.empty()) {
int p = -q.top();
q.pop();
if(vis[p])
continue;
vis[p] = true;
for(int i = head[p]; i; i = e[i].n) {
int t = e[i].t, w = e[i].w;
dis[t] = min(dis[t], dis[p] + w);
if(!vis[t])
q.push(-t);
}
}
for(int i = 1; i <= n; i++)
cout << dis[i] << " ";
return 0;
}
回复
共 2 条回复,欢迎继续交流。
正在加载回复...