poj 2031Building a Space Station(几何判断+Kruskal最小生成树)

 1 /*
 2   最小生成树 + 几何判断
 3   Kruskal      球心之间的距离 - 两个球的半径 < 0 则说明是覆盖的!此时的距离按照0计算 
 4 */
 5 #include<iostream>
 6 #include<cstdio>
 7 #include<cstring>
 8 #include<cmath>
 9 #include<algorithm>
10 using namespace std;
11 int f[105];
12 struct ball{
13    double x, y, z, r;
14 };
15 
16 struct connect{
17    double dist;
18    int a, b;
19 };
20 
21 connect c[5005];
22 
23 ball b[105];
24 
25 bool cmp(connect a, connect b){
26    return a.dist < b.dist;
27 }
28 int n;
29 
30 int getFather(int x){
31    return x==f[x] ? x : f[x]=getFather(f[x]); 
32 } 
33 
34 int Union(int a, int b){
35     int fa=getFather(a), fb=getFather(b);
36     if(fa!=fb){
37         f[fa]=fb;
38         return 1;
39     }
40     return 0;
41 }
42 
43 int main(){
44    int i, j;
45    while(scanf("%d", &n) && n){
46       for(i=1; i<=n; ++i)
47          scanf("%lf%lf%lf%lf", &b[i].x, &b[i].y, &b[i].z, &b[i].r);
48       int cnt=0;
49       for(i=1; i<n; ++i)
50          for(j=i+1; j<=n; ++j){
51              double d = sqrt((b[i].x-b[j].x)*(b[i].x-b[j].x) + (b[i].y-b[j].y)*(b[i].y-b[j].y) + (b[i].z-b[j].z)*(b[i].z-b[j].z))
52                         - (b[i].r + b[j].r);
53                c[cnt].dist= d<0 ? 0: d;
54                c[cnt].a=i; 
55                c[cnt++].b=j;
56          }
57        sort(c, c+cnt, cmp); 
58        double minSum=0.0;
59        for(i=1; i<=n; ++i)
60           f[i]=i;
61        for(i=0; i<cnt; ++i){
62           if(Union(c[i].a, c[i].b))
63              minSum+=c[i].dist;
64        }
65        printf("%.3lf\n", minSum);
66    }
67    return 0;
68 }

 

转载于:https://www.cnblogs.com/hujunzheng/p/3877502.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/531839.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为怎么用手机看时间到读秒_华为手机灭屏也可以看时间?其实设置方法很简单,不会有些可惜了...

华为作为手机界名副其实的大佬&#xff0c;而且华为手机的口碑也是非常不错的。那么为什么会有这么多人喜欢华为手机呢&#xff1f;主要是华为手机的质量高&#xff0c;并且用很多实用的小功能&#xff0c;比如说神奇的灭屏显示功能等等&#xff0c;今天就给大家分享几个华为手…

将数据转化成字符串时:用字符串的链接 还是 StringBuilder

/*目的&#xff1a;将数据转化成字符串时&#xff1a;用字符串的链接 还是 StringBuilder呢&#xff1f; */ public class Test{public static void main(String[] args){int[] arr{1,2,4,5};System.out.println(arrayToString(arr));}/* public static String arrayToString(…

html频谱跳动效果,HTML5音频可视化频谱跳动代码

HTML5音频可视化频谱跳动代码*{margin:0;padding:0;}#canvas {display: block;background: linear-gradient(135deg, rgb(142, 13, 133) 0%, rgb(230, 132, 110) 100%);}window.οnclickfunction () {if(oAudio.paused) {oAudio.play();}else{oAudio.pause();}}//创建音频上下文…

hive转16进制unhex_Java 进制的转换

什么是进制&#xff1f;进制也就是进位计数制&#xff0c;是人为定义的带进位的计数方法(有不带进位的计数方法&#xff0c;比如原始的结绳计数法&#xff0c;唱票时常用的“正”字计数法&#xff0c;以及类似的tally mark计数)。 对于任何一种进制---X进制&#xff0c;就表示每…

html中css二级联动,html二级联动学习笔记

DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">http://www.cnblogs.com/whgw/archive/2012/05/11/2496667.htmlJquery的select操作集合jQuery获取Select选择的Text和Value: 语法解释&#xff1a; 1. $("#select_id").change(function()…

poj 2187 Beauty Contest(凸包求解多节点的之间的最大距离)

1 /* poj 2187 Beauty Contest2 凸包&#xff1a;寻找每两点之间距离的最大值3 这个最大值一定是在凸包的边缘上的&#xff01; 4 5 求凸包的算法&#xff1a; Andrew算法&#xff01; 6 */7 #include<iostream> 8 #include<cstdio>9 #include&l…

引入ui组件_Vuejs, Semantic CSS前端框架fish-ui

简介基于vue2.0, github star 690, 一款小众的UI框架fish-ui&#xff0c;直接上截图&#xff1a;主要特性配备Vue.js&#xff0c;Moment&#xff0c;Vue-Router&#xff0c;ES6和Babel 6使用Webpack 2.0和Vue LoaderSemantic CSS 组件使用 Less支持现代浏览器快速开发安装npm i…

html5可以用flash,HTML5网页可以直接看视频,不用flash吗,另外WP7为何不支持flash。。。HTML5网页...

Android中可以直接使用webView来加载HTML5通过video标签来播放视频。以下为基本步骤&#xff1a;一、需要在AndroidManifest.xml文件中声明需要使用HardwareAccelerate, 可以细化到Activity级别&#xff0c;如果不需要的View可以声明不要用加速&#xff0c;但是需要在代码中做具…

pojBuy Tickets2828线段树或者树状数组(队列中倒序插队)

这题开始的思路就是模拟&#xff1a;就像数组中插点一样&#xff0c;每一个想买票的人都想往前插队&#xff01; 但是这样的话肯定TLE&#xff0c; 看了别人的思路之后才恍然大悟&#xff01; 正解&#xff1a;将开始的正序插入&#xff0c;变成倒序插入&#xff0c;这样的话&a…

减去字符串_从文本字符串中提取指定值的6个超级技巧解读

在实际的工作中&#xff0c;从指定的字符串中提取指定文本也是常用的技巧之一&#xff0c;除了手动操作之外&#xff0c;下文的8种应用技巧也是必须要掌握的。一、Left函数法。功能&#xff1a;从指定文本字符串的第一个字符开始&#xff0c;提取指定长度的字符串。语法结构&am…

如果用计算机录制歌曲需要,网络歌手怎么用电脑录音软件录歌

现在网上有很多网络歌手主要分为两类&#xff0c;一类是原创&#xff0c;一类是翻唱。可是不管是原创还是翻唱都需要自己唱歌录歌&#xff0c;要有属于自己的歌曲(自己唱的)。要录歌就要有设备&#xff0c;毕竟网路歌手刚开始大多数都是草根没有钱找音乐工作室&#xff0c;只能…

中国剩余定理证明过程

原网址&#xff1a;http://blog.csdn.net/wtq493841534/article/details/5452720 中国剩余定理 中国剩余定理可以描述为&#xff1a; 若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn&#xff0c;则可表示为下式&#xff1a;xR1r1R2r2…RnrnRD其中R1是d2、d3、…、dn的公…

关闭浏览器前提示_win7系统ie总弹出查看和跟踪下载的关闭方法

今天小编给大家分享的是win7系统ie总弹出查看和跟踪下载的关闭方法&#xff0c;使用ie浏览器上网的时候&#xff0c;有些用户会遇到ie总弹出查看和跟踪下载的窗口&#xff0c;很多用户想关闭掉此提示&#xff0c;却不知如何关闭查看和跟踪下载的窗口&#xff0c;那么请参照以下…

html引入百度地图报错,vue引入百度地图BMapGL,或者其他个性化地图

3.jpgvue的百度地图早就有vue-baidu-map这里就不赘述了&#xff0c;自己去直接对着API写就好了&#xff0c;基本上已经满足绝大多数需求了还简单方便。vue-baidu-map 传送门 https://dafrok.github.io/vue-baidu-map/#/zh/index这里主要是在vue里面引入BMapGL&#xff0c;或者其…

Sort the Array

1 /*2 思路&#xff1a; 3 找到单调下降串的起始位置[l, r]4 如果左边 0...l-1中的最大值 > l...r中的最小值 或者5 r1...n中的最小值 < l...r中的最大值 都是不能实现排序的&#xff01; 6 */7 #include<iostream>8 #include<cstdio>9 #include…

排序千万级数据_从千万级房产成交量排名,窥探中国城市的真实家底

原标题&#xff1a;从千万级房产成交量排名&#xff0c;窥探中国城市的真实家底 文&#xff0f;孙不熟 来源/城市战争 如果你有1000万以上的买房预算&#xff0c;你的选择其实很少&#xff0c;总共不超过10个城市&#xff0c;这就是中国城市和楼市的真实家底。 昨天推送了一篇《…

html 实现列表组并排,列表组--自定义列表组

Bootstrap框加在链接列表组的基础上新增了两个样式&#xff1a;☑list-group-item-heading&#xff1a;用来定义列表项头部样式☑list-group-item-text&#xff1a;用来定义列表项主要内容这两个样式最大的作用就是用来帮助开发者可以自定义列表项里的内容&#xff0c;如下面的…

poj1006生理周期(中国剩余定理)

1 /*2 中国剩余定理可以描述为&#xff1a;3 若某数x分别被d1、、…、dn除得的余数为r1、r2、…、rn&#xff0c;则可表示为下式&#xff1a;4 xR1r1R2r2…RnrnRD5 其中R1是d2、d3、…、dn的公倍数&#xff0c;而且被d1除&#xff0c;余数为1&#xff1b;&#xff08;称为R1相对…

queryselectorall 怎么取name_用这个方法,我爬取了《王者荣耀》《英雄联盟》等游戏皮肤图片...

本文简介&#xff1a;本文使用Python制作爬虫&#xff0c;来爬取《英雄联盟》《王者荣耀》《神之浩劫》等游戏官方网站的英雄皮肤图片。可以作为新手爬虫的练手实战案例&#xff01;&#xff01;爱打游戏的各位肯定也是对游戏里面制作精美&#xff0c;妩媚无比或是帅气逼人的皮…

云端计算机可以玩游戏么,手机掌上云电脑是什么?为什么可以玩PC游戏?

原标题&#xff1a;手机掌上云电脑是什么&#xff1f;为什么可以玩PC游戏&#xff1f;经常会在一些短视频平台上看到别人用云电脑的应用在手机上玩PC游戏&#xff0c;那么这个掌上云电脑的应用到底是什么呢&#xff1f;为什么可以玩PC游戏呢&#xff1f;按照以往的理解&#xf…