ZXR20101209 @ 2024-08-07 16:12:35
#include<bits/stdc++.h>
using namespace std;
pair<long long,pair<long long,long long>>p[200005];
long long n,m,fa[200005];
int find(int x)
{
return fa[x]==x?x:fa[x]=find(fa[x]);
}
int unite(int x,int y)
{
fa[find(x)]=find(y);
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>p[i].second.first>>p[i].second.second>>p[i].first;
}
sort(p+1,p+m+1);
int ans=0,cnt=0;
for(int i=1;i<=n;i++)fa[i]=i;
for(int i=1;i<=m;i++)
{
if(find(p[i].second.first)==find(p[i].second.second)) continue;
else
{
unite(p[i].second.second,p[i].second.first);
++cnt;
ans+=p[i].first;
}
}
if(cnt!=n-1)cout<<"orz"<<endl;
else cout<<ans<<endl;
}
by ZXR20101209 @ 2024-08-07 16:13:27
全RE了
by All_Failed_OI_Cici @ 2024-08-07 16:23:15
@ZXR20101209 这里
pair<long long,pair<long long,long long>>p[200005];
试试改成
pair<long long,pair<long long,long long> >p[200005];