rt,本来应该去好好刷普及的题的,结果洛谷推荐这个,就写了一下,最后一个点不行
#include<bits/stdc++.h>
#define itn int
#define tin int
#define nit int
#define tni int
#define nti int
#define scnaf scanf
#define ptrinf printf
#define icn cin
#define cni cin
#define inc cin
#define nci cin
#define nic cin
#define cuot cout
#define ocut cout
#define fro for
using namespace std;
int n,m,f[5001],g[5001][5001],ans=0;
bool b[5001];
int main()
{
// freopen(".in","r",stdin);
// freopen(".out","w",stdout);
cin>>n>>m;
memset(g,0x3f,sizeof g);
for(int i=1;i<=n;i++)g[i][i]=0;
for(int i=1;i<=m;i++)
{
int x,y,z;
cin>>x>>y>>z;
g[x][y]=min(z,g[x][y]);
g[y][x]=min(z,g[y][x]);
}
for(int i=1;i<=n;i++)
f[i]=g[1][i];
b[1]=1;
for(int i=1;i<=n-1;i++)
{
int minn=0x3f3f3f3f,minl;
for(int j=1;j<=n;j++)
{
if(!b[j] && f[j]<minn)
{
minn=f[j];
minl=j;
}
}
b[minl]=1;
ans+=f[minl];
for(int j=1;j<=n;j++)
{
if(!b[j] && g[minl][j]<f[j])
f[j]=g[minl][j];
}
}
if(ans==0)cout<<"orz";
else
cout<<ans;
return 0;
}