博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
uva 10397(最小生成树)
阅读量:7222 次
发布时间:2019-06-29

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

这道题是最小生成树树的变形。题目告诉你在其中已经添加过了一些边,在剩下的边中选取若干条使其成为一个最小生成树。

我记得上一次做真题是遇到类似的问题。我用了prime算法求解。现在就换用了kruskal算法。

根据查询选把相应边合并,这些边不算入虽小生成树的权值即可,接下来的就和kruskal算法一致。

代码如下:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #define INF 0x7fffffff 8 #define LEN 1010 9 using namespace std;10 11 typedef struct{12 double x, y;13 }POINT;14 15 typedef struct {16 int a, b;17 double v;18 }ARC;19 20 int n, m, top, parent[LEN];21 POINT p[LEN];22 ARC Arc[LEN*LEN];23 double Map[LEN][LEN];24 25 inline double dis(POINT a, POINT b){ return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));}26 bool cmp(ARC a, ARC b){ return a.v
View Code

 

转载于:https://www.cnblogs.com/shu-xiaohao/p/3441688.html

你可能感兴趣的文章
HTML5适应旧的浏览器的使用总结
查看>>
vi全局替换方法
查看>>
MySQL基础入门学习【1】基本操作
查看>>
初版python计算器
查看>>
CSS实现单行、多行文本溢出显示省略号(…)
查看>>
HDU 2444 The Accomodation of Students
查看>>
zabbix 源码编译安装
查看>>
:before和::before的区别
查看>>
P2261 [CQOI2007]余数求和
查看>>
浮点运算潜在的结果不一致问题
查看>>
完成端口(Completion Port)详解
查看>>
Luxand_FaceSDK_Documentation.pdf
查看>>
iOS下bound,center和frame
查看>>
sql 集合查询 数据更新操作语句
查看>>
REP 前缀
查看>>
js高级程序设计(六)面向对象
查看>>
C# JS URL 中文传参出现乱码的解决方法
查看>>
OO第三单元作业总结
查看>>
[译]从零开始成为数据科学家的9个步骤
查看>>
Python 10 MySQL数据库(一)
查看>>