58分求助!!!
查看原帖
58分求助!!!
457016
zhouqiyue楼主2023/2/5 15:24
#include<bits/stdc++.h>
using namespace std;
int n,m,x,y,z,w[5001][5001],d[5001],minn[5001],ans;
bool f[5001];
int main()
{
	memset(minn,0x3f,sizeof(minn));
	memset(w,0x3f,sizeof(w));
	memset(f,1,sizeof(f));
	cin>>n>>m;
	for(int i=1;i<=m;i++)
	{
		cin>>x>>y>>z;
		if(w[x][y]>z)
		w[x][y]=w[y][x]=z;
		d[x]++;
		d[y]++;
	}
	minn[1]=0;	
	for(int i=1;i<=n;i++)
	{
		int k=0,t=0x3f;
	    for(int j=2;j<=n;j++)
	    if(f[j]&&(minn[j]<t))
	    {
	    	t=minn[j];
	    	k=j;
		}
		if(t==0x3f)
		{
			cout<<"orz"<<endl;
			return 0;
		}
	    f[k]=0;
	    for(int j=2;j<=n;j++)
	    if(f[j]&&(minn[j]>w[k][j]))
	    minn[j]=w[k][j];
	    ans+=minn[k];
	}
	cout<<ans<<endl;
	return 0;
}```
2023/2/5 15:24
加载中...