zoukankan      html  css  js  c++  java
  • poj 2560 || 杭电1162

    杭电上为多实例测试,poj上为单实例,在此,列出poj代码

    View Code
     1 #include<stdio.h>
     2 #include<string.h>
     3 #include<math.h>
     4 #define M 200000000
     5 #define N 110
     6 double map[N][N],a[N],b[N];
     7 int n;
     8 void met()//简单的最小生成树算法
     9 {
    10     int i,k;
    11     double min;
    12     k=1;
    13     a[k]=0;
    14     while(b[k]==0)
    15     {
    16         b[k]=1;
    17         for(i=1;i<=n;i++)
    18             if(b[i]==0&&a[i]>map[k][i])
    19                 a[i]=map[k][i];
    20             min=200000000;
    21             for(i=1;i<=n;i++)
    22                 if(b[i]==0&&a[i]<min)
    23                 {
    24                     min=a[i];
    
    25                     k=i;
    26                 }
    27     }
    28     
    29 }
    30 
    31 
    32 int main()
    33 {
    34     int i,j;
    35     scanf("%d",&n);
    36     
    37     double x,y,dis,c[110],d[110];
    38     for(i=1;i<=n;i++)
    39     {
    40         a[i]=M;
    41         for(j=1;j<=n;j++)
    42             map[i][j]=M;
    43     }
    44     memset(b,0,sizeof(b));
    45     for(i=1;i<=n;i++)
    46     {
    47         scanf("%lf%lf",&c[i],&d[i]);
    48     }
    49     for(i=1;i<=n;i++)
    50         for(j=1;j<=i;j++)
    51         {
    52             x=c[i]-c[j];
    53             y=d[i]-d[j];
    54             dis=sqrt(x*x+y*y);//求两点之间距离
    55             map[i][j]=map[j][i]=dis;
    56         }
    57         met();
    58         double sum=0;
    59         for(i=1;i<=n;i++)
    60             sum+=a[i];
    61         printf("%.2f\n",sum);
    62         return 0;
    63 }                              
  • 相关阅读:
    更改sql server数据库所有者的对象
    对C#委托及事件委托的理解
    印度人是怎样开发软件的?
    SQL常用函数
    Ajax学习1
    Ajax学习2
    什么是ORM?
    jQuery 移动网页到制定的位置
    Juery 控件的取值赋值
    js禁用滚动条
  • 原文地址:https://www.cnblogs.com/zlyblog/p/2616368.html
Copyright © 2011-2022 走看看