WA+MLE,求助
查看原帖
WA+MLE,求助
1228260
LamineYamal楼主2024/9/1 16:40
#include<bits/stdc++.h>
using namespace std;
const int inf=0x7fffffff;
const int N=1e4+5;
int n,m,s,u,v,w,dis[N],maps[N][N];
bool check[N];
int main()
{
	memset(dis,inf,sizeof(dis));
	cin>>n>>m>>s;
	for(int i=1;i<=m;i++)
	{
		cin>>u>>v>>w;
		maps[u][v]=w;
	}
	dis[s]=0;
	for(int i=1;i<=n;i++)
	{
		int minc=inf,minx;
		for(int j=1;j<=n;j++)
		{
			if(dis[j]<minc&&check[j]==0)
			{
				minc=dis[j];
				minx=j;
			}
		}
		check[minx]=1; 
		for(int j=1;j<=n;j++)
		{
			if(maps[minx][j]>0)
			{
				if(minc+maps[minx][j]<dis[j])
				{
					dis[j]=minc+maps[minx][j];
				}
			}
		 } 
	}
	for(int i=1;i<=n;i++)
	{
		if(dis[i]==inf)
		{
			cout<<2147483646<<" "; 
		}
		else
		{
			cout<<dis[i]<<" ";
		}
	}
	return 0;
}
2024/9/1 16:40
加载中...