zoukankan      html  css  js  c++  java
  • 洛谷P2820 局域网

     1 #include<bits/stdc++.h>
     2 using namespace std;
     3 const int maxn=505;
     4 const int maxm=100005;
     5 int n,k,sum,tot;
     6 struct node{
     7     int cnt,fa;
     8 }f[maxn];
     9 int find(int x){return f[x].fa==x?x:f[x].fa=find(f[x].fa);}
    10 void Union(int x,int y)
    11 {
    12     x=find(x),y=find(y);if(x==y) return;
    13     if(f[x].cnt<=f[y].cnt) {f[x].fa=y;f[y].cnt+=f[x].cnt;}
    14     else {f[y].fa=x;f[x].cnt+=f[y].cnt;} 
    15 }
    16 struct edge{
    17     int x,y,dis;
    18 }E[maxm];
    19 inline bool cmp(const edge &a,const edge &b) {return a.dis<b.dis;}
    20 int main()
    21 {
    22     scanf("%d%d",&n,&k);
    23     for(int i=1;i<=k;i++) scanf("%d%d%d",&E[i].x,&E[i].y,&E[i].dis),sum+=E[i].dis;
    24     for(int i=1;i<=n;i++) f[i].fa=i,f[i].cnt=1;
    25     sort(E+1,E+1+k,cmp);
    26     for(int i=1;i<=k;i++)
    27     {
    28         if(f[find(1)].cnt==n) break;
    29         if(find(E[i].x)!=find(E[i].y)) Union(E[i].x,E[i].y),tot+=E[i].dis;
    30     }
    31     printf("%d",sum-tot);
    32     return 0;
    33 }
  • 相关阅读:
    java简单实现MD5加密
    Java用freemarker导出Word 文档
    java 反射(*)
    java解析XML
    JDBC程序实例
    web前端开发-博客目录
    虚拟主机配置
    WAMP运行原理
    WAMP配置
    web前端性能优化总结
  • 原文地址:https://www.cnblogs.com/yu-xing/p/10262041.html
Copyright © 2011-2022 走看看