zoukankan      html  css  js  c++  java
  • poj 2031 Building a Space Station(最小生成树模板)

    View Code
     1 #include<iostream>
     2 #include<cstdio>
     3 #include<math.h>
     4 #include<cstring>
     5 #define INF 0x3f3f3f
     6 struct node
     7 {
     8     double x,y,z,r;
     9 }ht[105];
    10 double h[105][105];
    11 void prim(int n)
    12 {
    13     int vis[105];
    14     int pos,i,j;
    15     double min;
    16     double tr[105];
    17     memset(vis,0,sizeof(vis));
    18     for(i=1;i<n;i++)
    19     {
    20         tr[i]=h[0][i];
    21         vis[0]=1;
    22     }
    23     double ans=0;
    24     for(i=0;i<n-1;i++)
    25     {
    26         min=INF;
    27         for(j=1;j<n;j++)
    28         {
    29             if(!vis[j]&&tr[j]<min)
    30             {
    31                 min=tr[j];
    32                 pos=j;
    33             }
    34         }
    35         vis[pos]=1;
    36         ans+=min;
    37         for(j=1;j<n;j++)
    38         {
    39             if(tr[j]>h[pos][j])
    40             tr[j]=h[pos][j];
    41         }
    42     }
    43     printf("%.3f\n",ans);
    44 }
    45 double dis(double x1,double y1,double z1,double r1,double x2,double y2,double z2,double r2)
    46 {
    47     return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)+(z1-z2)*(z1-z2))-r1-r2;
    48 }
    49 int main()
    50 {
    51     int n,i,j;
    52     while(~scanf("%d",&n))
    53     {
    54         if(n==0)
    55         break;
    56         for(i=0;i<n;i++)
    57         {
    58             scanf("%lf%lf%lf%lf",&ht[i].x,&ht[i].y,&ht[i].z,&ht[i].r);
    59         }
    60         memset(h,0,sizeof(h));
    61         for(i=0;i<n;i++)
    62         {
    63             for(j=0;j<=i;j++)
    64             {
    65                 h[i][j]=dis(ht[i].x,ht[i].y,ht[i].z,ht[i].r,ht[j].x,ht[j].y,ht[j].z,ht[j].r);
    66                 if(h[i][j]<0)
    67                 {
    68                     h[i][j]=0;
    69 
    70                 }
    71                 h[j][i]=h[i][j];
    72             }
    73         }
    74         prim(n);
    75     }
    76     return 0;
    77 }
  • 相关阅读:
    自定义标签的解析
    alias、beans标签的解析
    import标签的解析
    注册解析的BeanDefinition
    bean子元素的解析
    bean标签的解析
    注册BeanDefinitions
    Object类
    归并排序
    快速排序
  • 原文地址:https://www.cnblogs.com/wanglin2011/p/2633809.html
Copyright © 2011-2022 走看看