博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ 2485 Highways(最小生成树,基础模板题)
阅读量:4046 次
发布时间:2019-05-25

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

题目分析:

经典的修公路问题,N个村落进行修路,最后使得修路耗资最少,也就是最小生成树问题。

本题是给你一个N个节点的无向图,以及它的距离矩阵.现在要你求该图的最小生成树,并输出该树中最长边的长度.最长边也就是最后加进去的那条边了。顺其自然,Krustkal算法:

Krustkal算法AC代码:

#include
#include
#include
#include
using namespace std;#define MAX 505struct edge { int u, v, cost; };bool cmp(const edge& e1, const edge& e2) { return e1.cost < e2.cost; }vector
es;//边集合int fa[MAX];//并查集int n;//顶点数int find(int x) { return fa[x] == -1 ? x : fa[x] = find(fa[x]); }//并查集查找 路径压缩int kk(){ int cnt=0; sort(es.begin(), es.end(), cmp);//对边进行排序 memset(fa, -1, sizeof(fa));//并查集初始化 int res = 0; for (int i = 0; i < es.size(); i++) { if (find(es[i].u) != find(es[i].v))//不在同一个连通分量 { fa[find(es[i].u)] = find(es[i].v);//unite res += es[i].cost; if (++cnt >= n - 1)return es[i].cost;//最后修的路最长咯 } } return -1;}int main(){ int T; cin >> T; while (T--) { es.clear(); scanf("%d",&n); for(int i=0;i

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

你可能感兴趣的文章
[LeetCode By Python]7 Reverse Integer
查看>>
[leetCode By Python] 14. Longest Common Prefix
查看>>
[LeetCode By Python]121. Best Time to Buy and Sell Stock
查看>>
[LeetCode By Python]122. Best Time to Buy and Sell Stock II
查看>>
[LeetCode By Python]125. Valid Palindrome
查看>>
[LeetCode By Python]136. Single Number
查看>>
Android/Linux 内存监视
查看>>
Android2.1消息应用(Messaging)源码学习笔记
查看>>
android raw读取超过1M文件的方法
查看>>
MPMoviePlayerViewController和MPMoviePlayerController的使用
查看>>
CocoaPods实践之制作篇
查看>>
[Mac]Mac 操作系统 常见技巧
查看>>
苹果Swift编程语言入门教程【中文版】
查看>>
捕鱼忍者(ninja fishing)之游戏指南+游戏攻略+游戏体验
查看>>
iphone开发基础之objective-c学习
查看>>
iphone开发之SDK研究(待续)
查看>>
计算机网络复习要点
查看>>
Variable property attributes or Modifiers in iOS
查看>>
NSNotificationCenter 用法总结
查看>>
C primer plus 基础总结(一)
查看>>