Kruskal求助

P3366 【模板】最小生成树

您写的不是Kruskal 吧
by charliegong @ 2019-06-08 21:57:17


```cpp #include<iostream> #include<cstring> #include<algorithm> #include<stdio.h> #define MAXN 2000000 using namespace std; int n,m; struct Edge{ int u,v,c; bool operator < (const Edge t) const{ return t.c>c; } }e[MAXN<<1]; int tot=0,fa[MAXN]; int get(int x){ if(fa[x]==x) return x; else return fa[x]=get(fa[x]); } int kruskal(){ sort(e+1,e+1+m); int ans=0,cnt=0; for(int i=1;i<=n;i++) fa[i]=i; for(int i=1;i<=m;i++){ int fu=get(e[i].u); int fv=get(e[i].v); if(fu==fv) continue; fa[fu]=fv; cnt++; ans+=e[i].c; if(cnt==n-1) break; } if(cnt<n-1) return -1; return ans; } int main() { scanf("%d %d",&n,&m); for(int i=1;i<=m;i++){ cin>>e[i].u>>e[i].v>>e[i].c; } cout<<kruskal()<<endl; return 0; } ```
by charliegong @ 2019-06-08 21:57:33


@[JK1201730613168](/space/show?uid=80924)
by charliegong @ 2019-06-08 21:57:58


tql
by 森岛帆高 @ 2019-06-08 22:00:50


本弱驹也是第一次见这末写的qaq
by charliegong @ 2019-06-08 22:01:15


@[charliegong](/space/show?uid=95626) 感谢大佬,我是用kruskal算法的思想写的,但是没有用并查集,直接用belong数组表示不同的点属于哪个连通集,就是找不出原来的代码哪里会出现问题qaq
by 怪盗geek @ 2019-06-08 22:05:25


你可以放心,本题没有orz的情况
by charliegong @ 2019-06-08 22:08:54


50分您咋拿的??CE!
by charliegong @ 2019-06-08 22:10:04


@[JK1201730613168](/space/show?uid=80924)
by charliegong @ 2019-06-08 22:10:12


DEVc++都CE了
by charliegong @ 2019-06-08 22:12:05


| 下一页