3TLE 1AC 6WA
查看原帖
3TLE 1AC 6WA
401479
LuckiestShawn楼主2021/11/28 16:50
#include <iostream>
#define max (1<<31)-1
using namespace std;
int n,m,s,u,v,w,mid,gragh[10001][10001],min_dis,dist[10001],vist[10001],i,j;
int dijkstra()
{
	for(j=1;j<=n;j++)
		dist[j]=gragh[s][j];
	for(i=1;i<=n;i++)
	{
		min_dis=max,mid=1;
		for(j=1;j<=n;j++)
		{
			if(!vist[j]&&min_dis>dist[j])
				min_dis=dist[j],mid=j;
		}
		for(j=1;j<=n;j++)
		{
			if(!vist[j]&&(gragh[mid][j]!=max)&&dist[j]>min_dis+gragh[mid][j])
				dist[j]=min_dis+gragh[mid][j];
		} 
		vist[mid]=1;
		cout << dist[i]<<" ";
	}
		
	return 0;
}
int main()
{
	cin >> n>> m>> s;
	vist[s]=1;
	for(i=1;i<=m;i++)
	{
		cin >> u>> v>> w;
		gragh[u][v]=w;
	}
	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			if(gragh[i][j]==0) gragh[i][j]=max;
		gragh[i][i]=0;
	}
	dijkstra();
	
	
	return 0;
}
2021/11/28 16:50
加载中...