社区讨论

非常好代码,使我#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 条回复,欢迎继续交流。

正在加载回复...