zoukankan      html  css  js  c++  java
  • E

    题意:在一个叫做QS的星系,他们使用一些特殊的通讯方式,两个人之间通讯需要使用一个网络适配器,但是一个网络适配器只能跟一个人联系,所有它连接几个人就需要及格适配器,而且每个人都有一些不同的偏好,喜欢的适配器的牌子也是不同的,现在让你求出来让QS人之间相互通讯最少需要多少代价?
    输入第一行是测试数据组数,下面是一个N,代表N个人,下一样有N个数表示每个人喜欢的适配器的价格,接着一个矩阵,表示两点间通讯(电缆??)的价格。

    分析:只要在每条边的权值上加上两个适配器的价格就可以了。
    *******************************************************************
    #include<iostream>
    #include<cstring>
    #include<cstdio>
    #include<queue>
    #include<math.h>
    #include<vector>
    using namespace std;

    #define maxn 1005

    int f[maxn], val[maxn];
    struct node
    {
        int u, v, len;
        friend bool operator < (node a, node b)
        {
            return a.len > b.len;
        }
    };
    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 N, u, v;
            node s;
            priority_queue<node> Q;

            scanf("%d", &N);

            for(int i=1; i<=N; i++)
            {
                scanf("%d", &val[i]);
                f[i] = i;
            }

            for(s.u=1; s.u<=N; s.u++)
            for(s.v=1; s.v<=N; s.v++)
            {
                scanf("%d", &s.len);
                s.len += val[s.u]+val[s.v];
                Q.push(s);
            }

            int ans = 0;

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

                if(u != v)
                {
                    f[u] = v;
                    ans += s.len;
                }
            }

            printf("%d ", ans);
        }

        return 0;
    }
  • 相关阅读:
    WP8微信5.3开始内测 支持Cortana语音 两微破冰了?
    微信公众平台开放设备接入能力 智能手环首批支持
    iPad版微信终于来临了 微信5.4版搜索更智能 转账就是发消息
    消息推送
    微信推广功能支持图片广告和投放外链广告
    微信公众平台增加更多统计项 让你更了解运营数据
    老贼微信公众号运营现状小起底
    Matlab norm 用法小记
    matlab的cell数组
    matlab中元胞数组(cell)转换为矩阵
  • 原文地址:https://www.cnblogs.com/liuxin13/p/4674490.html
Copyright © 2011-2022 走看看