请帮忙挑个虫子
查看原帖
请帮忙挑个虫子
63394
XQLG楼主2020/10/3 23:49
#include<bits/stdc++.h>
using namespace std;
int n,m,s,ans[10010],a[10010][10010];
bool visit[10010];
int main()
{
	cin>>n>>m>>s;
	for(int i=1;i<=n;i++)
	{
		ans[i]=2147483647;
	}
	for(int i=1;i<=m;i++)
	{
		int x,y,z;
		cin>>x>>y>>z;
		a[x][y]=z;
		if(x==s)
		{
			ans[y]=z;
		}
	}
	visit[s]=1;
	ans[s]=0;
	for(int i=1;i<=n;i++)
	{
		int mid,min1=2147483647;
		for(int u=1;u<=n;u++)
		{
			if(min1>ans[u]&&visit[u]==0)
			{
				min1=ans[u];
				mid=u;
			}
		}
		visit[mid]=1;
		for(int u=1;u<=n;u++)
		{
			if(visit[u]==0&&ans[u]>ans[mid]+a[mid][u])
			{
				ans[u]=ans[mid]+a[mid][u];
			}
		}
	}
	for(int i=1;i<=n;i++)
	{
		cout<<ans[i]<<" ";
	}
	return 0;
 } 
2020/10/3 23:49
加载中...