社区讨论
非常好代码,使我#3T爆
P4779【模板】单源最短路径(标准版)参与者 3已保存回复 14
讨论操作
快速查看讨论及其快照的属性,并进行相关操作。
- 当前回复
- 14 条
- 当前快照
- 1 份
- 快照标识符
- @lv82w9du
- 此快照首次捕获于
- 2024/04/20 20:31 2 年前
- 此快照最后确认于
- 2024/04/20 22:05 2 年前
CPP
#include <bits/stdc++.h>
using namespace std;
#define ll long long
ll dis[200005];
typedef pair<ll,ll> P;
ll n,m,s,u,v,w;
struct data{ll to,w;};
vector<data>head[200005];
int main()
{
scanf("%lld%lld%lld",&n,&m,&s);
for(int i=1;i<=m;i++)
{
scanf("%lld%lld%lld",&u,&v,&w);
head[u].push_back((data){v,w});
}
priority_queue<P,vector<P>,greater<P> >Q;
memset(dis,127,sizeof dis);
dis[s]=0;
Q.push(P(0,s));
while(Q.size())
{
P p=Q.top();Q.pop();
int u=p.second;
for(int i=0;i<head[u].size();i++)
{
int to=head[u][i].to,w=head[u][i].w;
if(dis[to]>dis[u]+w)
{
dis[to]=dis[u]+w;
Q.push(P(dis[to],to));
}
}
}
for(int i=1;i<=n;i++)
printf("%lld ",dis[i]);
return 0;
}
回复
共 14 条回复,欢迎继续交流。
正在加载回复...