poj2349 Arctic Network

来源:互联网 发布:三体文明等级 知乎 编辑:程序博客网 时间:2024/06/10 18:19

题目链接:http://poj.org/problem?id=2349
题意:有s颗星球,有p个雷达站,如果雷达站在同一个星球上,不需要距离就可以直接通信,如果不在一个星球上,他们之间的距离不能超过D,现在给你p个雷达站的坐标,如果要把这整个雷达站连通,问你最小的D是多少
解析:首先要联通全部雷达站,肯定是最小生成树,然后让你求一个D值,雷达站之间连边,相当于如果距离大于D就不能相连,那么可以先对他做最小生成树,共p-1条边,因为在一个星球上的雷达站默认是相连的,那么也就可以在去掉s-1(因为一定有一个雷达站在一个星球上)条边,然后在取一下剩下的边权的最大值

#include <iostream>#include <algorithm>#include <cstdio>#include <cstring>#include <cmath>using namespace std;const int maxn = 1e6+100;struct node{    int u,v;    double c;    node() {}    node(int _u,int _v,double _c)    {        u = _u;        v = _v;        c = _c;    }    bool operator < (const node &b)const    {        return c<b.c;    }}a[maxn];int fa[maxn];double d[maxn];double x[maxn],y[maxn];double dis(double x1,double y1,double x2,double y2){    return sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));}int getfa(int x){    if(fa[x]==x)        return fa[x];    return fa[x] = getfa(fa[x]);}int main(void){    int t;    scanf("%d",&t);    while(t--)    {        int s,n;        scanf("%d %d",&s,&n);        for(int i=1;i<=n;i++)        {            scanf("%lf %lf",&x[i],&y[i]);            fa[i] = i;        }        int cnt1 = 0,cnt2 = 0;        for(int i=1;i<=n;i++)        {            for(int j=i+1;j<=n;j++)                a[cnt1++] = node(i,j,dis(x[i],y[i],x[j],y[j]));        }        sort(a,a+cnt1);        for(int i=0;i<cnt1;i++)        {            int t1 = getfa(a[i].u);            int t2 = getfa(a[i].v);            if(t1!=t2)            {                fa[t1] = t2;                d[cnt2++] = a[i].c;            }        }        double ans = 0;        for(int i=0;i<cnt2-s+1;i++)            ans = max(ans,d[i]);        printf("%.2f\n",ans);    }    return 0;}
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 微信久了没登录冻结了怎么办 换手机号了微店怎么办 ai文件置入后都是字怎么办 excel加载项被禁用了怎么办 被期刊网骗了怎么办 发表的文章不想被收录怎么办? 农村长说的眼睛害了怎么办 普通党员不认同领导的决定怎么办 大学读不下去了怎么办 教师因病长期不能上班怎么办 长按win键黑屏了怎么办 巡视组巡视出问题后续怎么办 货运资格证两次没继续教育怎么办 电子注册备案表学信网查不到怎么办 学信网学籍档案没照片怎么办 信访局不给答复怎么办 发票跳了一个号怎么办 报税用的ca证书怎么办 报税u盘丢了怎么办 地税ca证书丢了怎么办 深圳ca证书丢了怎么办 武汉国税报税证书过期怎么办 江苏大学专业选修课挂了怎么办 电信翼企享福卡怎么办 教育部学籍在线验证报告过期怎么办 身份证被别人注册了学信网怎么办 大专文凭查不到学籍该怎么办 学信网上查不到学历怎么办 学信网上没有学历照片怎么办 学信网上没照片怎么办 学历认证报告丢了怎么办 学历认证弄丢了怎么办 手机系统安全证书有问题怎么办 台式电脑的浏览器证书出错怎么办 网上银行k宝密码忘了怎么办 工行证书介质已被锁定怎么办 学历认证是假的怎么办 怕被公司查学历怎么办 淘宝玩具没有怎么办3c 家庭遭遇小三我该怎么办 老公出轨把小三带回家了怎么办