• hdu 1162 Eddy's picture


    http://acm.hdu.edu.cn/showproblem.php?pid=1162

     1 #include <cstdio>
     2 #include <cstring>
     3 #include <iostream>
     4 #include <cmath>
     5 #include <algorithm>
     6 #define maxn 200
     7 using namespace std;
     8 const int inf=1<<30;
     9 
    10 double g[maxn][maxn];
    11 int n;
    12 bool vis[maxn];
    13 double dist[maxn];
    14 double sum;
    15 struct node
    16 {
    17     double x,y;
    18 }p[maxn];
    19 
    20 double sqr(double x)
    21 {
    22     return x*x;
    23 }
    24 
    25 double dis(int x1,int y1,int x2,int y2)
    26 {
    27     return sqrt(sqr(x1-x2)+sqr(y1-y2));
    28 }
    29 
    30 void prim()
    31 {
    32     memset(vis,false,sizeof(vis));
    33     for(int i=1; i<=n; i++) dist[i]=g[1][i];
    34     dist[1]=0;
    35     vis[1]=true;
    36     for(int i=1; i<n; i++)
    37     {
    38         double m=(double)inf;
    39         int x;
    40         for(int j=1; j<=n; j++) if(!vis[j]&&dist[j]<m) m=dist[x=j];
    41         sum+=m;
    42         vis[x]=true;
    43         for(int j=1; j<=n; j++) if(!vis[j]) dist[j]=min(dist[j],g[x][j]);
    44     }
    45 }
    46 
    47 
    48 int main()
    49 {
    50     while(scanf("%d",&n)!=EOF)
    51     {
    52         for(int i=1; i<=n; i++)
    53         {
    54             cin>>p[i].x>>p[i].y;
    55         }
    56         for(int i=1; i<=n; i++)
    57         {
    58             for(int j=1; j<=n; j++)
    59             {
    60                 double d=dis(p[i].x,p[i].y,p[j].x,p[j].y);
    61                 g[i][j]=g[j][i]=d;
    62             }
    63         }
    64         sum=0;
    65         prim();
    66         printf("%.2lf
    ",sum);
    67     }
    68     return 0;
    69 }
    View Code
  • 相关阅读:
    20200902
    20200808
    20200801
    20191017
    LeetCode #974. Subarray Sums Divisible by K 数组
    LeetCode #532. K-diff Pairs in an Array 数组 哈希 双指针
    LeetCode #234. Palindrome Linked List 链表 栈 链表逆置
    LeetCode #307. Range Sum Query
    LeetCode #45. Jump Game II 数组 贪心
    LeetCode #55. Jump Game 数组 贪心 线性DP 回溯
  • 原文地址:https://www.cnblogs.com/fanminghui/p/3662697.html
Copyright © 2020-2023  润新知