poj2031 最小生成树
来源:互联网 发布:乐其网络 知乎 编辑:程序博客网 时间:2024/05/16 08:11
最小生成树,prime 或者kruskal都可以吧,我用的prime算法。
看上去是个空间的问题,其实就是一个大水题~
代码如下:
#include<iostream>#include<cstdio>#include<cstring>#include<algorithm>#include<cmath>#define MAX 111#define maxlen 1000000.0using namespace std;struct Node{ double x,y,z,r;};Node node[MAX];double map[MAX][MAX],lowcost[MAX];int used[MAX],n;double dis(int i,int j){ double x,y,z,d; x=node[i].x-node[j].x; y=node[i].y-node[j].y; z=node[i].z-node[j].z; d=sqrt(x*x+y*y+z*z); d=d-node[i].r-node[j].r; if(d<=0) return 0.0; return d;}void init(){ int i,j; for(i=1;i<=n;i++) scanf("%lf%lf%lf%lf",&node[i].x,&node[i].y,&node[i].z,&node[i].r); for(i=1;i<=n;i++) { for(j=1;j<=n;j++) { if(j<i) map[i][j]=map[j][i]; else if(i==j) map[i][j]=0.0; else { map[i][j]=dis(i,j); } } }}double MST(){ int i,j,pos; double MIN,ans=0.0; memset(used,0,sizeof(used)); used[1]=1;pos=1; for(i=1;i<=n;i++) { if(i!=pos) lowcost[i]=map[pos][i]; } for(i=1;i<n;i++) { MIN=maxlen; for(j=1;j<=n;j++) { if(!used[j]&&MIN>lowcost[j]) { MIN=lowcost[j];pos=j; } } ans+=MIN; used[pos]=1; for(j=1;j<=n;j++) { if(!used[j]&&lowcost[j]>map[pos][j]) lowcost[j]=map[pos][j]; } } return ans;}int main(){ int i,j; while(scanf("%d",&n)==1) { if(n==0) break; init(); printf("%0.3lf\n",MST()); } return 0;}
0 0
- poj2031 最小生成树
- poj2031 最小生成树
- POJ2031 最小生成树
- poj2031(最小生成树)
- poj2031(最小生成树)
- 最小生成树之poj2031
- POJ2031(最小生成树)
- POJ2031--Building a Space Station--最小生成树
- <模板>poj2031 Building a Space Station(最小生成树)
- poj2031 Building a Space Station 最小生成树,kruskal
- POJ2031-Building a Space Station -最小生成树
- POJ2031 Building a Space Station(最小生成树,prim)
- poj2031 Building a Space Station 三维空间的最小生成树
- POJ2031,Building a Space Station,最小生成树模版题
- 【POJ2031】【最小生成树】【g++ f c++ lf】
- poj2031 Building a Space Station(最小生成树)
- POJ2031 Building a Space Station(最小生成树,Prim)
- poj2031-Building a Space Station(最小生成树,kruskal,prime)
- mac os 秒开 word doc 文档
- CodeForces 370A Rook, Bishop and King
- 关于Apache的日志
- canvas 图像合成
- Honi Rest服务使用说明文档
- poj2031 最小生成树
- 程序员应该知道的13个Web设计技巧
- Stream流
- 胡椒奇效:多吃可有效缓解胃寒
- 马云清华毕业典礼演讲:30年来我只坚持三件事
- TI C64x+ DSP CACHE 一致性分析与维护
- 海量数据处理算法—Bloom Filter
- CodeForces 287B Pipeline
- 【Unity Shaders】Shader学习资源和Surface Shader概述