大佬们求助!!!全TLE
查看原帖
大佬们求助!!!全TLE
568193
zhaozhicheng2010楼主2022/8/6 17:25
#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;
}
2022/8/6 17:25
加载中...