AcWing 1141. 局域网

某个局域网内有n台计算机和m双向 网线,计算机的编号是1~n由于搭建局域网时工作人员的疏忽,

现在局域网内的连接形成了回路,我们知道如果局域网形成回路那么数据将不停的在回路内传输,造成网络卡的现象。

 

#include<bits/stdc++.h>
using namespace std;
const int N=110,K=210;
int fa[N],n,k;
int tot;
struct node
{
    int a,b,c;
    bool operator < (const node &x)const{return c<x.c;}
}edge[K];
int found(int x){if(x==fa[x]) return x;return fa[x]=found(fa[x]);}
int main()
{
    cin>>n>>k;
    for(int i=1;i<=n;i++) fa[i]=i;
    for(int i=1;i<=k;i++)
    {
        int a,b,c;
        scanf("%d%d%d",&a,&b,&c);
        edge[i]={a,b,c};
        tot+=c;
    }
    sort(edge+1,edge+k+1);
    int res=0;
    for(int i=1;i<=k;i++)
    {
        int x=found(edge[i].a),y=found(edge[i].b);
        int z=edge[i].c;
        if(x!=y) {fa[x]=y;res+=z;}
    }
    cout<<tot-res;
    return 0;
}

 

posted @ 2021-02-04 11:27  君与  阅读(91)  评论(0编辑  收藏  举报