zoukankan      html  css  js  c++  java
  • G

    在北极圈有一些基地,这些基地需要建立通讯网络,他们可以通过卫星直接通信或者无线通信,基地有S个卫星,N个基地,不过无线通信的传输距离是D,距离越远费用越高,现在想知道D最小是多少。

    分析:使用krusal添加p-s条边就行了,因为剩下的边肯定会比已经添加的边要长,在添加的边里面选取最长的那条,也就是最后添加的那条。

    ************************************************************************************
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<queue>
    #include<math.h>
    #include<vector>
    using namespace std;

    #define maxn 505

    int f[maxn];
    struct node
    {
        int u, v;
        double len;
        friend bool operator < (node a, node b)
        {
            return a.len > b.len;
        }
    };
    struct point{double x, y;}p[maxn];
    double Len(point a, point b)
    {
        double x = a.x - b.x;
        double y = a.y - b.y;
        double l = sqrt(x*x+y*y);

        return l;
    }
    int Find(int x)
    {
        if(f[x] != x)
            f[x] = Find(f[x]);
        return f[x];
    }

    int main()
    {
        int T;

        scanf("%d", &T);

        while(T--)
        {
            int S, N, u, v;
            node s;
            priority_queue<node> Q;

            scanf("%d%d", &S, &N);

            for(s.u=1; s.u<=N; s.u++)
            {
                f[s.u] = s.u;
                scanf("%lf%lf", &p[s.u].x, &p[s.u].y);
                for(s.v=1; s.v<s.u; s.v++)
                {
                    s.len = Len(p[s.u], p[s.v]);
                    Q.push(s);
                }
            }

            while(Q.size() && S < N)
            {
                s = Q.top();Q.pop();
                u = Find(s.u), v = Find(s.v);

                if(u != v)
                {
                    S++;
                    f[u] = v;
                }
            }

            printf("%.2f ", s.len);
        }

        return 0;
    }
  • 相关阅读:
    寒假day08
    操作系统(一)操作系统的目标和作用
    数据结构排序算法稳定性总结——写给自己看
    网络请求生命周期
    PHP 不同类型之间的松散和严格比较
    php配置可被设定范围
    laravel5.7 前后端分离开发 实现基于API请求的token认证
    laravel 自动加载 自定义的文件/辅助函数
    laravel5.7 migrate 时报错 Specified key was too long error 解决方案
    PHP 命名空间
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4675235.html
Copyright © 2011-2022 走看看