zoukankan      html  css  js  c++  java
  • 10369

    这题的意思是给出p个点,然后p的点可以由无线电通信或者是卫星通信,然后只有m的点能通过卫星通信,然后用无线电通信的点的距离不能超过D超过D的话惠氏通信的成本增加,问在使通信成本就低的情况下求D

    这题还是最小生成树,用prim算法构造MST,在构造的过程将每次算的最小的权值存到数组f里面,然后按照升序排序。因为卫星通信可以无限远,就是说后m的权值可以不用算,所以答案就是f[p-m].

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<algorithm>
    #include<math.h>
    using namespace std;
    const double inf=2500000;
    double G[555][555]; 
    int x[555],y[555];
    double low[555]; 
    int vis[555];
    double f[555];
    int m,p;
    double get_dis(int a,int b,int c,int d)
    {
        return sqrt(pow(a-c,2.0)+pow(b-d,2.0));
    }
    void prim()
    {
        memset(vis,0,sizeof(vis));
        int pos=1;
        double min;
        vis[1]=1;
        for(int i=1;i<=p;i++)
        low[i]=G[pos][i];
        for(int i=1;i<p;i++)
        {
            min=inf;
            for(int j=1;j<=p;j++)
            {
                if(!vis[j]&&low[j]<min)
                {
                    min=low[j];
                    pos=j;
                }
            }
            vis[pos]=1;
            f[i]=min;
            for(int j=1;j<=p;j++)
            {
                if(!vis[j]&&low[j]>G[pos][j])
                low[j]=G[pos][j];
            }
        } 
        sort(f+1,f+p);
        printf("%0.2lf
    ",f[p-m]);
    }
    int main()
    {
        int t;
        scanf("%d",&t);
        while(t--)
        {
            scanf("%d %d",&m,&p);
            for(int i=1;i<=p;i++)
            scanf("%d %d",&x[i],&y[i]);
            int k=0;
            for(int i=1;i<=p;i++)
            {
                
                for(int j=i+1;j<=p;j++)
                G[i][j]=G[j][i]=get_dis(x[i],y[i],x[j],y[j]);
            }
            prim();
        }
        return 0;
    }
        
  • 相关阅读:
    GXPT(一)——UI设计
    JVM系列文章(四):类载入机制
    poj 2688 状态压缩dp解tsp
    ASP.NET MVC Model绑定(四)
    cocos2dx实例开发之flappybird(入门版)
    qt creator中使用qwt插件
    [CodeEdit--Sublime]一些好用的Plugins
    NBUT 1225 NEW RDSP MODE I
    [IOC]Unity使用
    [Js/Jquery]jquery插件开发
  • 原文地址:https://www.cnblogs.com/NaCl/p/4859561.html
Copyright © 2011-2022 走看看