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

17人阅读 评论(0) 收藏 举报
分类:

传送门


最小生成树裸题,至于政府的三个条件:
(1)如果两个或以上城市申请修建同一条公路,则让它们共同修建;
(2)如果三个或以上的城市申请修建的公路成环。A申请修建公路AB,B申请修建公路BC,C申请修建公路CA。则政府将否决其中最短的一条公路的修建申请;
(3)其他情况的申请一律同意。
很明显,第一个条件和第三个条件都是废的,我们再仔细看一看第二个条件,发现三角形ABC是等边三角形,那么第二个条件也废了…
于是直接跑模板累加边权,由于数据较大,跑P算法。

Code:

#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>

int x[5010],y[5010];
bool v[5010];
int n;
double d[5010];

inline double dis(int i,int j){return sqrt((double)(x[i]-x[j])*(x[i]-x[j])+(double)(y[i]-y[j])*(y[i]-y[j]));}

int main()
{
    scanf("%d",&n);
    for(int i=1;i<=n;i++) scanf("%d %d",&x[i],&y[i]);
    for(int i=0;i<=n;i++) d[i]=1e9*1.0;
    d[1]=0;
    memset(v,false,sizeof(v));
    double ans=0;
    for(int i=1;i<=n;i++)
    {
        int k=0;
        for(int j=1;j<=n;j++)
            if(!v[j] && d[k]>d[j]) k=j;
        ans+=d[k];
        v[k]=true;
        for(int j=1;j<=n;j++)
            if(dis(k,j)<d[j]) d[j]=dis(k,j);
    }
    printf("%.2lf",ans);
}
查看评论

【BZOJ1196】公路修建问题,二分+最小生成树

[HNOI2006]公路修建问题Time Limit: 10 Sec Memory Limit: 162 MB Submit: 1534 Solved: 879 DescriptionOI i...
  • xym_CSDN
  • xym_CSDN
  • 2016-01-30 20:27:48
  • 399

洛谷 P1265 公路修建

最小生成树
  • Rlt1296
  • Rlt1296
  • 2016-08-08 21:59:30
  • 687

P1265 公路修建

洛谷 1265#include #include #include #include #include #include #include #define pow1(x) (x)*(x) using ...
  • qq_36820605
  • qq_36820605
  • 2017-03-08 15:31:03
  • 151

P1265 公路修建 (prim)

题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便。为解决这一“行路难”的问题,政府决定修建公路。修建公路的任务由各城市共同完成。 修建工程分若干轮完成。在每一轮中,每个城市选择...
  • ye_xingyu
  • ye_xingyu
  • 2018-01-25 18:01:33
  • 65

洛谷P1265 公路修建

题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便。为解决这一“行路难”的问题,政府决定修建公路。修建公路的任务由各城市共同完成。 修建工程分若干轮完成。在每一轮中,每个...
  • yangrui2002
  • yangrui2002
  • 2018-02-06 09:34:29
  • 60

洛谷 [P1265] 公路修建

本题的描述:城市联盟,最短距离。。使人想到了prim求MST,再一看数据范围:完全图!,那么一定得用prim,因为只有5000个点,所以不加优化的prim就能过。 #include #includ...
  • qq_40280028
  • qq_40280028
  • 2017-11-03 21:47:29
  • 78

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

传送Door传送吧题解这题题面好像挺复杂,其实就是个果的Prim算法。yy一下就知道第二条规则纯属吹B,没有卵用。一个最小生成树题目,为什么一定要用Prim呢?因为题目处处提醒你这题就是要用Prim。...
  • Ab_Ever
  • Ab_Ever
  • 2017-09-27 20:47:06
  • 118

【最小生成树+二分】bzoj1196 公路修建问题

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1196 题目大意:某城市要修建n-1条路使n个城市连通,要求n-1条路中必须有k条为高级公...
  • FAreStorm
  • FAreStorm
  • 2015-10-13 21:03:29
  • 708

公路修建 P1265

题目描述 某国有n个城市,它们互相之间没有公路相通,因此交通十分不便。为解决这一“行路难”的问题,政府决定修建公路。修建公路的任务由各城市共同完成。 修建工程分若干轮完成。在每一轮中,每个城市选择...
  • MrTinTin
  • MrTinTin
  • 2017-08-23 11:23:51
  • 101
    个人资料
    持之以恒
    等级:
    访问量: 770
    积分: 454
    排名: 20万+
    文章存档
    最新评论