POJ 2031Building a Space Station
来源:互联网 发布:软件测试简历范文 编辑:程序博客网 时间:2024/06/18 01:31
题意:就是给出三维坐标系上的一些球的球心坐标和其半径,搭建通路,使得他们能够相互连通。如果两个球有重叠的部分则算为已连通,无需再搭桥。求搭建通路的最小费用,最小生成树板子题,细心处理数据即可;
#include<algorithm>#include<iostream>#include<queue>#include<stack>#include<vector>#include<map>#include<set>#include<cstring>#include<string>#include<cstdio>#include<cmath>using namespace std;typedef struct node{int x;int y;double date;}node;typedef struct list{double a;double b;double c;double d;}list;bool cmp(node e,node r){return e.date<r.date;}int first[115];int next[115];void csh(int m){for(int i=1;i<=m;i++){first[i]=i;next[i]=1;}return ;} int find(int x){if(x==first[x]) return x;else{x=first[x];return find(x);}}void hebin(int x,int y){x=find(x);y=find(y);if(x==y) return ;else{if(next[x]>next[y]){first[y]=x;}else{first[x]=y;if(next[x]==next[y]){next[y]++;}}}return ;}list aa[115];node vulue[20010];int main(){int m;while(scanf("%d",&m)==1&&m!=0){for(int i=1;i<=m;i++){scanf("%lf %lf %lf %lf",&aa[i].a,&aa[i].b,&aa[i].c,&aa[i].d);}int ans=0;int u=0;csh(m);for(int i=1;i<m;i++){for(int j=i+1;j<=m;j++){double t;t=1.0*sqrt((aa[j].a-aa[i].a)*(aa[j].a-aa[i].a)+(aa[j].b-aa[i].b)*(aa[j].b-aa[i].b)+(aa[j].c-aa[i].c)*(aa[j].c-aa[i].c))-aa[i].d-aa[j].d;if(t<=0){if(find(i)!=find(j)){ans++;hebin(i,j);}}else{u++;vulue[u].x=i;vulue[u].y=j;vulue[u].date=t;}}}sort(vulue+1,vulue+u+1,cmp);double sum=0;for(int i=1;i<=u;i++){if(find(vulue[i].x)!=find(vulue[i].y)){ans++;sum+=vulue[i].date;hebin(vulue[i].x,vulue[i].y);if(ans==(m-1)){break;}}}printf("%.3lf\n",sum);}return 0;}
阅读全文
0 0
- poj 2031 Building a Space Station
- POJ 2031:Building a Space Station (Prim)
- poj 2031 Building a Space Station
- Poj 2031 Building a space station
- POJ 2031 Building a Space Station
- poj 2031 Building a Space Station MST
- POJ 2031 Building a Space Station
- POJ 2031 Building a Space Station
- POJ-2031-Building a Space Station
- POJ 2031 Building a Space Station
- POJ 2031 Building a Space Station
- poj 2031 Building a Space Station
- POJ:2031 Building a Space Station
- POJ 2031 Building a Space Station
- POJ 2031 Building a Space Station
- 【prim】 poj 2031 Building a Space Station
- POJ 2031 Building a Space Station
- POJ-2031 Building a Space Station
- map-reduce阶段中的数据倾斜问题
- 十种排序算法总结(冒泡、插入、选择、希尔、归并、堆、快速,计数,桶,基数)
- 算法系列15天速成——第五天 五大经典查找【中】
- [PHP]即时输出及不限时
- 算法系列15天速成——第六天 五大经典查找【下】
- POJ 2031Building a Space Station
- u盘引导 在SSD+HHD配置下安装ubuntu16.04
- Java JDK下载、安装与系统环境变量配置
- opengl 中坐标系to 2D 变换
- centos源
- PAT程序设计考题——甲级1065( A+B and C (64bit) ) C++实现
- NODE.JS socket客户端
- 【iOS】浅析Objective-C中的堆与栈(PDF版)
- macOS上的改键指南--使用Karabiner