zoukankan      html  css  js  c++  java
  • codevs 1231 最优布线问题

    1231 最优布线问题

     

    时间限制: 1 s
    空间限制: 128000 KB
    题目等级 : 白银 Silver
     
     
     
    题目描述 Description

    学校需要将n台计算机连接起来,不同的2台计算机之间的连接费用可能是不同的。为了节省费用,我们考虑采用间接数据传输结束,就是一台计算机可以间接地通过其他计算机实现和另外一台计算机连接。

    为了使得任意两台计算机之间都是连通的(不管是直接还是间接的),需要在若干台计算机之间用网线直接连接,现在想使得总的连接费用最省,让你编程计算这个最小的费用。

    输入描述 Input Description

    输入第一行为两个整数n,m2<=n<=100000,2<=m<=100000),表示计算机总数,和可以互相建立连接的连接个数。接下来m行,每行三个整数a,b,c 表示在机器a和机器b之间建立连接的话费是c。(题目保证一定存在可行的连通方案, 数据中可能存在权值不一样的重边,但是保证没有自环)

    输出描述 Output Description

    输出只有一行一个整数,表示最省的总连接费用。

    样例输入 Sample Input

    3 3

    1 2 1

    1 3 2

    2 3 1

    样例输出 Sample Output

    2

    数据范围及提示 Data Size & Hint

    最终答案需要用long long类型来保存

     1 #include<iostream>
     2 #include<cstdio>
     3 #include<cstring>
     4 #include<algorithm>
     5 using namespace std;
     6 
     7 struct node{
     8     int u,v,q;
     9     bool operator < (const node &aa)const
    10     {
    11         if(q<aa.q)return 1;
    12         else return 0;
    13     }
    14 }a[100001];
    15 int father[100001];
    16 int find(int x)
    17 {
    18     if(father[x]!=x) father[x]=find(father[x]);
    19      return father[x];
    20 }
    21 void unionn(int x,int y)
    22 { 
    23   father[father[x]]=father[y];
    24 }
    25 int main()
    26 {
    27     int n,m;
    28     scanf("%d%d",&n,&m);
    29     int x,y,z;
    30     for(int i=1;i<=m;i++)
    31     {
    32         scanf("%d%d%d",&x,&y,&z);
    33         a[i].u=x;
    34         a[i].v=y;
    35         a[i].q=z;
    36     }
    37     long long int tot=0,k=0;
    38     for(int i=1;i<=n;i++)father[i]=i;
    39     sort(a+1,a+m+1);
    40     for(int i=1;i<=m;i++)
    41     {
    42         if(find(a[i].u)!=find(a[i].v))
    43         {
    44             unionn(a[i].u,a[i].v);
    45             tot+=a[i].q;
    46             k++;
    47         }
    48         if(k==n-1)break;
    49     }
    50     cout<<tot<<endl;
    51 }
  • 相关阅读:
    钱多多软件制作04
    团队项目01应用场景
    HDU 4411 arrest
    HDU 4406 GPA
    HDU 3315 My Brute
    HDU 3667 Transportation
    HDU 2676 Matrix
    欧拉回路三水题 POJ 1041 POJ 2230 POJ 1386
    SPOJ 371 BOXES
    POJ 3422 Kaka's Matrix Travels
  • 原文地址:https://www.cnblogs.com/sssy/p/6723119.html
Copyright © 2011-2022 走看看