@[宇佐见堇子](/space/show?uid=79011) 帮你改了一下:::
```
#include<iostream>
#include<algorithm>
using namespace std;
int n,m,sum,ans,tot,f[20005];
struct node
{
int u,v,w;
}a[20005];
bool cmp(node a,node b)
{
return a.w<b.w;
}
int getf(int x)
{
return (f[x]==x?x:f[x]=getf(f[x]));
}
bool merge(int x,int y)
{
if(getf(x)!=getf(y))
{
f[getf(y)]=getf(x);
return true;
}
return false;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=m;i++)
{
cin>>a[i].u>>a[i].v>>a[i].w;
tot+=a[i].w;
}
for(int i=1;i<=n;i++) f[i]=i;
sort(a+1,a+1+m,cmp);
for(int i=1;i<=m;i++)
{
if(merge(a[i].u,a[i].v))
{
sum++;
ans+=a[i].w;
}
if(sum==n) break;
}
cout<<tot-ans<<endl;
return 0;
}
```
by 有朋自远方来 @ 2019-07-14 08:49:21
在这儿错了:::sort(a+1,a+1+m,cmp);
by 有朋自远方来 @ 2019-07-14 08:49:49
并查集里面不只有一个元素,所以合并的时候计数不能简单地sum++。
by xo_永夜_ox @ 2019-07-14 09:00:41
@[有朋自远方来](/space/show?uid=87197) 额,,果然99%的错误都是**错误。。。
by Ophelia @ 2019-07-14 09:13:25
@[宇佐见堇子](/space/show?uid=79011) 有时这样一个错误要调好几个小时
by 有朋自远方来 @ 2019-07-14 09:18:05