【NOIP模板】 最小生成树 kruskal
来源:互联网 发布:java贪吃蛇源代码下载 编辑:程序博客网 时间:2024/06/09 16:55
#include <cstdio>#include <cstring>#include <algorithm>using namespace std;int n, w, num = 0, head[100010], fa[1010];struct Edge { int u, v, w, next;} edge[100010];void add(int u, int v, int w) { num ++; edge[num].u = u; edge[num].v = v; edge[num].w = w; edge[num].next = head[u]; head[u] = num;}int find(int x) { if(fa[x] == x) return x; return fa[x] = find(fa[x]);}bool cmp(const Edge &a, const Edge &b) { return a.w < b.w;}int main() { scanf("%d", &n); for(int i = 1; i <= n; i ++) for(int j = 1; j <= n; j ++) { scanf("%d", &w); if(w) add(i, j, w); } for(int i = 1; i <= n; i ++) fa[i] = i; sort(edge + 1, edge + num + 1, cmp); int sum = 0, tot = 0; for(int i = 1; i <= num; i ++) { int p1 = find(edge[i].u); int p2 = find(edge[i].v); if(p1 == p2) continue; fa[p1] = p2; tot ++; sum += edge[i].w; if(tot == n - 1) break; } printf("%d", sum); return 0;}
阅读全文
0 0
- 【NOIP模板】 最小生成树 kruskal
- 最小生成树-kruskal模板
- 最小生成树kruskal模板
- 【模板】最小生成树Kruskal
- 【模板】Kruskal 最小生成树
- 【模板】Kruskal 最小生成树
- 最小生成树-kruskal 模板
- Kruskal模板 最小生成树
- POJ1258-最小生成树-kruskal模板
- 最小生成树Kruskal算法模板
- 最小生成树-Kruskal算法模板
- hdu1233最小生成树 kruskal算法模板
- 最小生成树—Kruskal模板
- 最小生成树(prim&kruskal)模板
- poj-1258-最小生成树kruskal模板
- 最小生成树prim+kruskal模板
- 最小生成树 Kruskal 算法模板
- 最小生成树-Kruskal算法(模板)
- django验证码框架(django-simple-captcha)
- Spring Boot Maven Plugin -- repackage鐩?爣
- 如何将本地代码上传至git仓库
- Java 重写(Override)与重载(Overload)
- java中new出来一个对象和定义一个对象赋值为空有什么不同
- 【NOIP模板】 最小生成树 kruskal
- TCP三次握手和四次挥手的全过程
- 反思
- c# 事件 +=和-=有什么区别。
- yii2.0 的安装
- leetcode Reverse Integer 反转整数
- HDU 4080 字符串哈希+二分
- 文献阅读之Attention-based Crowd Video Classification
- foreach 和in的用法