社区讨论

大佬们求助!!!全TLE

P4779【模板】单源最短路径(标准版)参与者 3已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@lo8d9uvp
此快照首次捕获于
2023/10/27 16:44
2 年前
此快照最后确认于
2023/10/27 16:44
2 年前
查看原帖
CPP
#include<bits/stdc++.h>

using namespace std;

const long long N=100005,inf=2147483647;

long long dis[N],chack[N],n,m,s,l,r,w;

struct stu{

	long long v,w;
};

vector <stu> a[N];

  void dijkstra(long long s)
{
  
	for(long long i=1;i<=n;i++){
		long long k=0;
		for(long long j=1;j<=n;j++) if(!chack[j]&&dis[j]<dis[k]) k=j;
		chack[k]=1;
		for(long long j=0;j<a[k].size();j++){
			if(!chack[a[k][j].v]) dis[a[k][j].v]=min(dis[a[k][j].v],dis[k]+a[k][j].w);
		}
	}
}

  int main(){
  
	scanf("%lld%lld%lld",&n,&m,&s);
	for(long long i=0;i<=n;i++){
		dis[i]=inf;
	}
	for(long long i=1;i<=m;i++){
		scanf("%lld%lld%lld",&l,&r,&w);
		a[l].push_back({r,w});
	}
	dis[s]=0;
	dijkstra(s);
	for(long long i=1;i<=n;i++) printf("%lld ",dis[i]);
	return 0;
}

回复

3 条回复,欢迎继续交流。

正在加载回复...