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

    【题解】

      答案就是总的边权和减去最小生成树上的边权和。

     1 #include<cstdio>
     2 #include<algorithm>
     3 #include<cstring>
     4 #define LL long long
     5 #define rg register
     6 #define N 200010
     7 using namespace std;
     8 int n,m,sum,ans,cnt,f[N];
     9 struct edge{
    10     int u,v,dis;
    11 }a[N];
    12 inline int read(){
    13     int k=0,f=1; char c=getchar();
    14     while(c<'0'||c>'9')c=='-'&&(f=-1),c=getchar();
    15     while('0'<=c&&c<='9')k=k*10+c-'0',c=getchar();
    16     return k*f;
    17 }
    18 inline bool cmp(edge a,edge b){return a.dis<b.dis;}
    19 inline int find(int x){return f[x]==x?x:f[x]=find(f[x]);}
    20 int main(){
    21     n=read(); m=read();
    22     for(rg int i=1;i<=m;i++) a[i].u=read(),a[i].v=read(),sum+=(a[i].dis=read());
    23     sort(a+1,a+1+m,cmp);
    24     for(rg int i=1;i<=n;i++) f[i]=i;
    25     for(rg int i=1;i<=m;i++){
    26         int u=find(a[i].u),v=find(a[i].v);
    27         if(u!=v){
    28             ans+=a[i].dis; f[u]=v; cnt++;
    29         }
    30         if(cnt==n-1) break;
    31     }
    32     printf("%d
    ",sum-ans);
    33     return 0;
    34 }
    View Code
  • 相关阅读:
    Docker学习(一)
    mysql定时任务
    如何查看电脑是几核的?
    卸载Mysql connect 6.9.9
    找不到该项目怎么删除
    jmeter录制app脚本
    postman使用
    排查linux系统是否被入侵
    部署apache-tomcat环境
    sudo初级授权设置
  • 原文地址:https://www.cnblogs.com/DriverLao/p/9398194.html
Copyright © 2011-2022 走看看