0分求助
查看原帖
0分求助
228451
he1234QWQ楼主2020/12/6 11:37
#include<bits/stdc++.h>
using namespace std;
struct sb
{
	int to,next,x;
}a[100010];
int head[100010],n,m,i,j,d[100010],s[100010],ans;
int tot;
void in(int x,int y,int z)
{
	tot++;
	a[tot].to=y;
	a[tot].x=z;
	a[tot].next=head[x];
	head[x]=tot;
}
int main()
{
	cin>>n>>m;
	
	for(int i=1;i<=m;i++)
	{
	    int u,v,w;
		cin>>u>>v>>w;
		in(u,v,w);
	}
	for(int i=1;i<=n;i++)
	{
	d[i]=1000000;
	s[i]=0;
	}
	d[1]=0;
	int u,v,w;
	for(i=1;i<=n;i++)
	{
	 v=-1;
	 w=1000000;
	 for(j=1;j<=n;j++)
	 {
	   if(s[j]==0&&d[j]<w)
	   {
	   	v=j;
	   	w=d[j];
	   }	
	 }
	 ans+=w;
	 s[v]=1;
	 for(int j=head[v];j;j=a[j].next)
	 {
	 	int u=a[j].to;
	 	if(d[u]>a[j].x&&s[u]==0)
	 	d[u]=a[j].x;
	 }
	}
	cout<<ans<<endl;
	return 0;
}
2020/12/6 11:37
加载中...