题目1028:继续畅通工程
来源:互联网 发布:c语言对数函数怎么表示 编辑:程序博客网 时间:2024/06/06 03:08
#include <stdio.h>#include <algorithm>using namespace std;#define N 101 int tree[N];int find(int x){ if (tree[x] == -1) return x; else { int tmp = find(tree[x]); tree[x] = tmp; return tmp; }} struct Edge{ int a, b; int cost; int is; bool operator < (const Edge &A) const { return cost < A.cost; }}; Edge edge[5000]; int main(){ int n; while (scanf("%d", &n) != EOF&&n != 0) { int size = 0; for (int i = 1; i <= n; i++) tree[i] = -1; for (int i = 1; i <= n*(n - 1) / 2; i++) { int a, b, cost, is; scanf("%d %d %d %d", &a, &b, &cost,&is); if (is == 1) { int x = find(a); int y = find(b); if (x != y) tree[x] = y; } else { edge[size].a = a; edge[size].b = b; edge[size].cost = cost; size++; } } sort(edge, edge + size-1); int ans = 0; for (int i = 0; i < size; i++) { int a = find(edge[i].a); int b = find(edge[i].b); if (a != b) { tree[a] = b; ans += edge[i].cost; } } printf("%d\n", ans); } return 0;}/************************************************************** Problem: 1028 User: cust123 Language: C++ Result: Accepted Time:10 ms Memory:1100 kb****************************************************************/
0 0
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 题目1028:继续畅通工程
- 【九度】题目1028:继续畅通工程
- 九度 题目1028:继续畅通工程
- 九度oj 题目1028:继续畅通工程
- 九度OJ 题目1028:继续畅通工程
- <九度 OJ>题目1028:继续畅通工程
- 九度OJ:题目 1028 继续畅通工程
- 【九度OJ】题目1028:继续畅通工程 解题报告
- 九度OJ-题目1028 继续畅通工程
- 题目1028:继续畅通工程 九度OJ
- vim 保存utf-8文件为gbk
- Mybatis结果集自动映射
- uva536 -- Tree Recovery
- js运动功能的封装
- 线性图形混合
- 题目1028:继续畅通工程
- 第十章练习题
- 不正经运维狗习题11
- StarUML使用说明-指导手册
- linux内存管理机制
- Txt转CSV,打开乱码
- 14.PHP_PHP与XML技术
- 向云服务器上传下载文件方法汇总
- [Leetcode]_14 Longest Common Prefix