求助!急

P3366 【模板】最小生成树

@[Jerry_Money](/user/906970) 不是 `orz` 吗你输了个 `org` 呀
by Pink_Cut_Tree @ 2024-08-03 14:26:01


``` #include<cstdio> #include<algorithm> using namespace std; int n,m,ans; struct node { int f,t,d; }a[200005];//存边,Kruskal不用建图 bool cmp(node x,node y){return x.d<y.d;} struct bin { int w[5005]; int find(int x) { if(x==w[x]) return x; w[x]=find(w[x]); return w[x]; } void add(int x,int y) { w[find(x)]=find(y); return ; } bool ask(int x,int y) { if(find(x)==find(y)) return true; else return false; } }b;//并查集 int main() { scanf("%d%d",&n,&m); for(int i=1;i<=m;i++) scanf("%d%d%d",&a[i].f,&a[i].t,&a[i].d); for(int i=1;i<=n;i++) b.w[i]=i;//并查集初始化 sort(a+1,a+m+1,cmp);//按边权排序 for(int i=1;i<=m;i++)//枚举每条边 { if(b.ask(a[i].f,a[i].t)) continue;//连通则跳过 ans+=a[i].d;//否则记录 b.add(a[i].f,a[i].t);//改为连通 } for(int i=2;i<=n;i++) if(!b.ask(1,n)) { printf("orz"); return 0; }//判断是否连通 printf("%d",ans); return 0; } ``` 本人已过,拿去用吧 不信? ·-[看这里](https://www.luogu.com.cn/record/170278550)
by tianyun4188 @ 2024-08-03 14:26:34


``` #include <bits/stdc++.h> using namespace std; #define int long long const int N = 5003, M = 2e5 + 3; struct DSU { int fa[N], siz[N]; void init(int n = N - 1) { for (int i = 0; i <= n; ++i) fa[i] = i, siz[i] = 1; } int find(int k) { return fa[k] == k ? k : fa[k] = find(fa[k]); } void merge(int u, int v) { u = find(u), v = find(v); if (u == v) return; if (siz[u] < siz[v]) swap(u, v); fa[v] = u, siz[u] += siz[v]; } bool query(int u, int v) { return find(u) == find(v); } } dsu; struct Edge { int from, to, val; Edge(int u = 0, int v = 0, int w = 0) : from(u), to(v), val(w) {} bool operator < (const Edge &other) const { return val < other.val; } } e[M]; int n, m, ans; signed main() { cin >> n >> m; dsu.init(n); for (int i = 1; i <= m; ++i) cin >> e[i].from >> e[i].to >> e[i].val; sort(e + 1, e + 1 + m); for (int i = 1; i <= m; ++i) if (dsu.query(e[i].from, e[i].to) == 0) dsu.merge(e[i].from, e[i].to), ans += e[i].val; for (int i = 2; i <= n; ++i) if (dsu.query(1, i) == 0) return cout << "orz" << '\n', 0; cout << ans << '\n'; return 0; } ``` 还有不要在代码里加文明用语,Luogu 容易被封号,CSP 和 NOI(p) 容易被禁赛。
by qazsedcrfvgyhnujijn @ 2024-08-03 14:26:47


来我团吧!这里的资源很多,可以和我一起建设,团主(我awa)虽然是个蒟蒻,但是我会努力刷题的qwq!-[加入看这里](https://www.luogu.com.cn/team/80372)
by tianyun4188 @ 2024-08-03 14:29:00


感谢大佬们
by Jerry_Money @ 2024-08-03 14:31:10


@[Jerry_Money](/user/906970) 来我团吧谢谢!我们可以一起找题!我团非常宠人的招人中谢谢!-[加入吧谢谢!!!!!!](https://www.luogu.com.cn/team/80372)
by tianyun4188 @ 2024-08-03 14:34:10


|