hdu 1162(最小生成树kruskal)
/*Name: 最小生成树(kruskal) Author: Date: 10/04/12 19:17 */#include <math.h> #include <cstdio> #include <iostream>using namespace std;const int M = 5050;int p[101], sum; struct edge {int a;int b;double dis; }e[M]; struct point {double x;double y; }po[101];int cmp(const void *a, const void *b) {if ((*(edge *)a).dis > (*(edge *)b).dis) return 1;return -1; }void init(int vs) {for (int i=1; i<=vs; ++i) p[i] = i;return ; }int find(int v) {if (p[v] != v) p[v] = find(p[v]);return p[v]; }double join(edge e) {int x, y;x = find(e.a);y = find(e.b);if (x != y) {++sum;p[x] = y;return e.dis;}return 0; }double kruskal(int es, int vs) {double ans = 0;init(vs);qsort(e, es, sizeof(edge), cmp);for (int i=0; i<es; ++i) {ans += join(e[i]);if (sum == vs) return ans;} }int main() {int n;while (scanf("%d", &n) != EOF) {for (int i=1; i<=n; ++i) scanf ("%lf%lf", &po[i].x, &po[i].y);int es = 0;for (int i=1; i<n; ++i) {for (int j=i+1; j<=n; ++j) {e[es].dis = sqrt((po[i].x-po[j].x)*(po[i].x-po[j].x)+(po[i].y-po[j].y)*(po[i].y-po[j].y));e[es].a = i;e[es].b = j;++es;}}sum = 1;double ans = kruskal(es, n);printf ("%.2lf\n", ans);}return 0; }
转载于:https://www.cnblogs.com/try86/archive/2012/04/10/2441110.html
hdu 1162(最小生成树kruskal)相关推荐
- hdu 1863(最小生成树kruskal)
/*Name: hdu1863畅通工程 Author: Try86Date: 10/04/12 12:43Description: 最小生成树(kruskal) */ #include <cst ...
- HDOJ 1863畅通工程(最小生成树kruskal算法并查集实现)
题目:http://acm.hdu.edu.cn/showproblem.php?pid=1863 最小生成树kruskal算法:http://www.zhuoda.org/irini/78592.h ...
- 图的最小生成树-Kruskal算法
问题引入 [问题描述] 编写程序,利用带权无向图的邻接矩阵存储,实现图的最小生成树Kruskal算法. [输入形式] 输入图的顶点序列及图的边的情况.如样例所示.边的输入以输入-1,-1,-1作为结束 ...
- 【老生谈算法】matlab实现Kruskal避圈算法求最小生成树——Kruskal避圈算法
基于MATLAB的Kruskal避圈算法求最小生成树 1.原文下载: 本算法原文如下,有需要的朋友可以点击进行下载 序号 原文(点击下载) 本项目原文 [老生谈算法]基于MATLAB的Kruskal避 ...
- 最小生成树kruskal算法
最小生成树kruskal算法 概述 算法分析 代码 概述 克鲁斯卡尔(Kruskal)(Kruskal)(Kruskal)算法是求连通网的最小生成树的另一种方法.与普里姆(Prim)(Prim)(Pr ...
- 实现最小生成树Kruskal算法(附完整代码)
实现最小生成树Kruskal算法(附完整代码) Kruskal算法是一种常见的计算最小生成树的算法.它的主要思想是将所有的边按照权值从小到大进行排序,并逐个加入到生成树中,如果加入后不会形成环,则保留 ...
- HDU 1162 Eddy's picture (最小生成树)(java版)
Eddy's picture 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1162 --每天在线,欢迎留言谈论. 题目大意: 给你N个点,求把这N个点 ...
- HDU 5253 最小生成树(kruskal)+ 并查集
题目链接 #include<cstdio> #include<cmath> #include<cstring> #include<algorithm> ...
- HDU 4081 最小生成树(或者次小生成树)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=4081 Problem Description There were n cities in Chin ...
最新文章
- uva 11212 Editing a Book
- 页面jlabel背景色设置_(六)使用elementUI搭建管理员页面布局
- flink批量写入oracle,批量写入目标表存在重复写入问题
- qt 在点击菜单下的动作之后获取该菜单的名称
- asp.net 生成、解析条形码和二维码
- 动态规划(最长递增子序列)---最长摆动子序列
- duration java_Java Duration类| minusMinutes()方法与示例
- Linux: 系统文件权限总结
- Rust 算法排位记-选择排序图示与代码实现
- 射线计算机,面对射线-射频-计算机 我愿做“影像工匠师”
- 华为宣布今年将投入2亿美元推动鲲鹏计算产业发展
- 跨域的小小总结:js跨域及跨域的几种解决方法
- 关于简单的factorymode
- 各种主流浏览器内核引擎的对比分析
- php获取图片格式(图片后缀)
- iPhone投屏家中设备有哪些方法 iPhone投屏失败是怎么回事如何解决
- 第十五周项目二-----用哈希法组织关键字之线性探测法
- 微信公众号页面中监听手机“返回”,并回到公众号里
- adguard home上网慢_分享一下AdGuard HOME的使用情况和几条规则。
- 前端模板——家乡风景的介绍
热门文章
- EmbeddedBrowser
- Linux搜寻文件或目录命令解析
- 在Fedora 11中安装Apache2+PHP5+MySQL(LAMP)
- linux下find用法 find -name *.so -exec ll {} \;
- SQLite指南(0) 表和索引的文件存储结构
- SQL 两张结构一样的表合并查询
- rabbitmq丢消息的处理方法
- web.xml 中的listener、 filter、servlet 加载顺序及其详解
- MySQL 时间戳转换成秒
- 猛龙出击•东莞赛区新闻发布会隆重举行,粤港澳大湾区将迎来首场搏击盛宴...