P1265 公路修建

Posted zytwan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了P1265 公路修建相关的知识,希望对你有一定的参考价值。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<cmath>
 4 using namespace std;
 5 const int maxm=50000;
 6 double dis[maxm];
 7 int vis[maxm];
 8 int a[maxm],b[maxm];
 9 const int INF=1e9;
10 int main()
11 {
12     int n;
13     scanf("%d",&n);
14     for(int i=1;i<=n;++i)
15     {
16         scanf("%d%d",&a[i],&b[i]);
17     }
18     for(int i=1;i<=n;++i) dis[i]=INF;
19     dis[1]=0;
20     double ans,num=0;
21     int wei;
22     for(int i=1;i<=n;++i)
23     {
24         ans=INF;
25         for(int j=1;j<=n;++j)
26         {
27             if(!vis[j]&&dis[j]<ans)
28             {
29                 wei=j;
30                 ans=dis[j];
31             }
32         }
33         vis[wei]=1;
34         num+=ans;
35         for(int j=1;j<=n;++j)
36         {
37             double check=(double)sqrt((a[wei]-a[j])*(a[wei]-a[j])+(b[wei]-b[j])*(b[wei]-b[j]));
38             if(check<dis[j]) dis[j]=check;
39         }
40     }
41     printf("%.2lf",num);
42     return 0;
43 }

 

Prim算法

以上是关于P1265 公路修建的主要内容,如果未能解决你的问题,请参考以下文章

P1265 公路修建

P1265 公路修建 (最小生成树)

luogu P1265 公路修建 最小生成树

luogu P1265 公路修建 最小生成树

BZOJ 1196 [HNOI2006]公路修建问题(二分答案+并查集)

公路修建