博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ1258Agri-Net
阅读量:6678 次
发布时间:2019-06-25

本文共 964 字,大约阅读时间需要 3 分钟。

#include 
#include
#include
#include
#include
using namespace std;const int maxm = 5500;const int maxn = 110;int fa[maxn];int N;struct edge { int x, y, w;};bool cmp(edge a, edge b) { return a.w < b.w;}vector
v;int getfather(int x) { if(x==fa[x]) return x; else return fa[x] = getfather(fa[x]);}int krucal() { int cnt = N; int ans = 0; int edgeSize = v.size(); for(int i = 1; i <= N; i++) fa[i] = i; for(int i=0; i < edgeSize; i++) { int f1 = getfather(v[i].x); int f2 = getfather(v[i].y); if(f1 != f2) { fa[f1] = f2; cnt--; ans += v[i].w; if(cnt==1) break; } } return ans;}int main(){ edge tmp; int w; while(scanf("%d", &N)!=EOF) { v.clear(); for(int i = 1; i <= N; i++) { for(int j = 1; j <= N; j++) { scanf("%d", &w); if(i!=j || w>0) { tmp.x = i; tmp.y = j; tmp.w = w; v.push_back(tmp); } } } sort(v.begin(), v.end(), cmp); int result = krucal(); printf("%d\n", result); } return 0;}

转载地址:http://fiyao.baihongyu.com/

你可能感兴趣的文章
借助node.js + mysql 学习基础ajax~
查看>>
程序员面试系列之Java单例模式的攻击与防御
查看>>
[LeetCode] 380. Insert Delete GetRandom O(1)
查看>>
Derek解读Bytom源码-创世区块
查看>>
Laravel教程: 3分钟实现小程序微信支付接入(上)——唤起支付
查看>>
IDEA开发工具报错----使用Tomcat启动项目报错
查看>>
MySQL学习记录: 常见问题
查看>>
leetcode-90. Subsets II
查看>>
【Redis学习笔记】2018-06-08 主从复制实现
查看>>
[JS]《你不知道的Javascript·上》——词法作用域和闭包
查看>>
使用XHProf分析PHP性能瓶颈(一)
查看>>
Mysql联合索引最左匹配原则
查看>>
Angular1.x + TypeScript 编码风格
查看>>
poi操作excel,复制sheet,复制行,复制单元格,复制style
查看>>
JavaScript中的变量提升(Hoisting)
查看>>
详解 | TiDB 2.0 GA is here!
查看>>
GridManager 导出
查看>>
360前端星学习笔记-HTML
查看>>
vue踩坑
查看>>
Linux常用命令
查看>>