要不你再学习一下 kruskal?
by StarLbright40 @ 2022-08-03 14:38:13
建议重学 Kruskal
by AKNOI的梓钦 @ 2022-08-03 14:38:48
建议重学
```cpp
#include<bits/stdc++.h>
using namespece std;
const int MAXN=10008;
int n,m,tot=0;
struct edge{
int u,v,w;
edge(int _u,int _v,int _w) : u(_u),v(_v),w(_w) {}
edge(){}
}a[MAXN*20];
int head[MAXN*20];
int f[MAXN*20];
int find(int x){
if(f[x]==x){
return x;
}
else{
f[x]=find(f[x]);
return f[x];
}
}
bool cmp(const edge &x,const edge &y){
if(x.w<y.w)
return 1;
else
return 0;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++) f[i]=i;
for(int i=1;i<=m;i++){
int x,y,z;
scanf("%d%d%d",&x,&y,&z);
a[i]=edge(x,y,z);
}
sort(a+1,a+m+1,cmp);
int k=0,cnt=0;
for(int i=1;i<=m;i++){
if(find(a[i].u)!=find(a[i].v)){
f[find(a[i].u)]=find(a[i].v);
cnt+=a[i].w;
k++;
}
if(k==n-1){
break;
}
}
if(k!=n-1) printf("orz\n");
else printf("%d\n",cnt);
return 0;
}
```
by caramel_qwq @ 2022-08-03 14:46:41
您把这么大的数组开在局部变量不RE才怪呢
by A_zjzj @ 2022-08-03 14:53:34