zoukankan      html  css  js  c++  java
  • bzoj 1083: [SCOI2005]繁忙的都市

     1 #include<cstdio>
     2 #include<iostream>
     3 #include<algorithm>
     4 #define M 10005
     5 using namespace std;
     6 struct data
     7 {
     8     int u,v,w;
     9 }a[M];
    10 int n,m,fa[M],sum;
    11 bool cmp(data a1,data a2)
    12 {
    13     return a1.w<a2.w;
    14 }
    15 int find(int a1)
    16 {
    17     if(fa[a1]==a1)
    18       return a1;
    19     fa[a1]=find(fa[a1]);
    20     return fa[a1];
    21 }
    22 int main()
    23 {
    24     scanf("%d%d",&n,&m);
    25     for(int i=1;i<=m;i++)
    26       scanf("%d%d%d",&a[i].u,&a[i].v,&a[i].w);
    27     sort(a+1,a+m+1,cmp);
    28     for(int i=1;i<=n;i++)
    29       fa[i]=i;
    30     for(int i=1;i<=m;i++)
    31       {
    32         int q1=find(a[i].u),q2=find(a[i].v);
    33         if(q1!=q2)
    34           {
    35             fa[q1]=q2;
    36             sum=a[i].w;
    37             }
    38       }
    39     printf("%d %d",n-1,sum);
    40     return 0;
    41 }

    很显然题目描述就是求一个最小生成树

  • 相关阅读:
    百马百担
    穷举
    折叠次数
    判断年份是否是闰年
    定义xy比大小
    1月21日
    1月20日作业-第三题
    1月20日作业-第二题
    1月18日
    1月18日
  • 原文地址:https://www.cnblogs.com/xydddd/p/5236766.html
Copyright © 2011-2022 走看看