题目1017:还是畅通工程
来源:互联网 发布:三维立体制作软件 编辑:程序博客网 时间:2024/06/06 02:07
可以很明显的看出,这是一道求最小生成树的问题,使用Kruskal算法和并查集的技巧,可以轻松解决。
#include <iostream>#include <math.h>#include <algorithm>using namespace std;struct Node{ int vil1; int vil2; int cost;};bool cmp (Node a,Node b){ return a.cost < b.cost;}int Tree[100];int findRoot(int x){ if (Tree[x] == -1) return x; return findRoot(Tree[x]);}int main(){ int n; while (cin >> n) { if (n == 0) break; n = n*(n-1)/2; int a,b; Node ss[100]; int sum = 0; for (int i = 1;i <= n;i++) { Tree[i] = -1; } for (int i = 0;i < n;i++) { cin >> ss[i].vil1 >> ss[i].vil2 >> ss[i].cost; } sort(ss,ss+n,cmp); for (int i = 0;i < n;i++) { a = findRoot(ss[i].vil1); b = findRoot(ss[i].vil2); if (a != b) { Tree[a] = b; sum += ss[i].cost; } } cout << sum << endl; }}
0 0
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程
- 题目1017:还是畅通工程(间接排序)
- 【九度】题目1017:还是畅通工程
- 九度:题目1017:还是畅通工程
- 九度 题目1017:还是畅通工程
- Jobdu 题目1017:还是畅通工程
- 九度 题目1017:还是畅通工程
- 题目1017:还是畅通工程 学习
- 九度 题目1017:还是畅通工程
- 题目71:还是畅通工程
- 九度oj 题目1017:还是畅通工程
- Navicat for mysql Mac版 快捷键
- Android EventBus使用详解
- React点击空白部分隐藏弹出层;React阻止事件冒泡失效)
- App启动速度优化
- vmware简易安装时无法手动安装vmware tools
- 题目1017:还是畅通工程
- GCC C语言处理主要函数之c_register_pragma
- Zuul(SpringCloud学习笔记一)
- SVM:从理论到OpenCV实践
- 单片机电平
- 2017.3.17 祭祀 失败总结
- ZigBee绑定通信原理
- 拯救懒癌晚期,拖延症晚期---番茄工作法
- 在Arduino上面使用震动开关模块