洛谷 P1991 无线通讯网(最小生成树_Kruskal)

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

传送门


在正常情况下,连通p个点至少需要p-1条边,而s个卫星电话最多能代替s-1条边(如下图_五个卫星电话)
卫星电话
因此我们只需要选中(p-1)-(s-1)也就是p-s条边就行了。
由于数据较小,我们跑一遍K算法,输出选中的边中的最大边权即可。

Code:

#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<cmath>
#include<algorithm>
using namespace std;

struct node{int x,y;double c;}a[250010];
int x[510],y[510],f[510];
double ans;
int s,p,len=0;

inline double dis(int i,int j)
{return sqrt((x[i]-x[j])*(x[i]-x[j])+(y[i]-y[j])*(y[i]-y[j]));}
inline bool cmp(node a,node b){return a.c<b.c;}
inline int findfa(int x)
{
    if(f[x]==x) return x;
    return f[x]=findfa(f[x]);
}

int main()
{
    scanf("%d %d",&s,&p);
    for(int i=1;i<=p;i++)
    {
        f[i]=i;
        scanf("%d %d",&x[i],&y[i]);
    }
    for(int i=1;i<=p;i++)
        for(int j=1;j<=p;j++)
        {
            a[++len].x=i;
            a[len].y=j;
            a[len].c=dis(i,j);
        }
    sort(a+1,a+1+len,cmp);
    int tot=0;
    for(int i=1;i<=len;i++)
    {
        int fx=findfa(a[i].x),fy=findfa(a[i].y);
        if(fx!=fy)
        {
            f[fx]=fy;
            tot++;
            if(tot==p-s) ans=a[i].c;
        }
    }
    printf("%.2lf",ans);
}
查看评论

中国下一个泡沫是什么?是媒体

中国下一个泡沫是什么?是媒体  05-10 19:17  本文点击次数: 6114   【ChinaByte 综合消息】   易凯网络资本公司首席执行官 王冉/文  一个泡沫刚刚破灭,又一个泡沫悄然升...
  • tchaikov
  • tchaikov
  • 2001-05-13 22:25:00
  • 924

洛谷 P1991 无线通讯网

最小生成树
  • Rlt1296
  • Rlt1296
  • 2016-08-08 21:09:32
  • 561

洛谷P1991 无线通讯网

题目描述 国防部计划用无线网络连接若干个边防哨所。2 种不同的通讯技术用来搭建无线网络; 每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。 任意两个配备了一条卫星电话线路的哨所(...
  • yangrui2002
  • yangrui2002
  • 2018-02-02 22:37:34
  • 62

洛谷p1991 codevs3338 无线通讯网 kruskal

题目描述 Description       国防部计划用无线网络连接若干个边防哨所。2 种不同的通讯技术用来搭建无线网络; 每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。 ...
  • henryn111
  • henryn111
  • 2016-11-14 16:27:57
  • 121

最小生成树+并查集(洛谷P1991 无线通讯网)

题目描述 国防部计划用无线网络连接若干个边防哨所。2 种不同的通讯技术用来搭建无线网络; 每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。 任意两个配备了一条卫星电话线路的哨所(...
  • u013672056
  • u013672056
  • 2017-07-27 20:35:19
  • 124

洛谷——P3366 【模板】最小生成树

题目描述如题,给出一个无向图,求出最小生成树,如果该图不连通,则输出orz 输入格式:第一行包含两个整数N、M,表示该图共有N个结点和M条无向边。(N...
  • peter_zhu01
  • peter_zhu01
  • 2017-03-09 16:50:42
  • 253

【Kruskal】 洛谷1991 无线通讯网

题目描述 国防部计划用无线网络连接若干个边防哨所。2 种不同的通讯技术用来搭建无线网络; 每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。 任意两个配备了一条卫星电话线路的哨所(...
  • qq_33901259
  • qq_33901259
  • 2016-10-28 21:47:02
  • 115

洛谷 1991 无线通讯网 kruskal

一本正经的刷水题,,传送门题解:题目给定了卫星的数量,也就是说,最后整张图形成的联通块的数量要小于等于该数,手动连边,kruskal加边,满足条件时输出当前边并且exit#include #incl...
  • ctsnevermore
  • ctsnevermore
  • 2016-11-09 20:35:28
  • 113

洛谷1991 无线通讯网 最小生成树

题目描述 国防部计划用无线网络连接若干个边防哨所。2 种不同的通讯技术用来搭建无线网络; 每个边防哨所都要配备无线电收发器;有一些哨所还可以增配卫星电话。 任意两个配备了一条卫星电话...
  • masterwater
  • masterwater
  • 2017-03-15 17:15:25
  • 101
    个人资料
    持之以恒
    等级:
    访问量: 880
    积分: 485
    排名: 10万+
    最新评论