*洛谷P4779 单源最短路径
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10, M = 2e5 + 10, inf = 0x3f3f3f3f;
int n, m, s, dis[N];
bool vis[N];
priority_queue<pair<int, int > > q;
int hd[N], nt[M], to[M], w[M], tot;
inline void add(int u, int v, int c)
{
nt[++tot] = hd[u];
hd[u] = tot;
to[tot] = v;
w[tot] = c;
}
inline void Dijkstra(int s)
{
for(int i = 1; i <= n; ++i) dis[i] = inf;
dis[s] = 0;
q.push(make_pair(0, s));
int u, v;
while(!q.empty())
{
u = q.top().second; q.pop();
if(vis[u]) continue;
vis[u] = true;
for(int e = hd[u]; e; e = nt[e])
{
if(!vis[v = to[e]] && dis[v] > dis[u] + w[e])
{
dis[v] = dis[u] + w[e];
q.push(make_pair(-dis[v], v));
}
}
}
for(int i = 1; i <= n; ++i) cout << dis[i] << ' ';
}
int main()
{
scanf("%d%d%d", &n, &m, &s);
for(int i = 1, u, v, c; i <= m; ++i)
scanf("%d%d%d", &u, &v, &c), add(u, v, c);
Dijkstra(s);
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具