用kruskal为什么只有28分啊各位大佬,还re了几个点

P3366 【模板】最小生成树

要不你再学习一下 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


|