zoukankan      html  css  js  c++  java
  • 最小生成树

    最小生成树是在n个点的图中选n-1条边构成树(每个点都满足能够互相达到,即直接连接或间接)

    整一整kruskal

    模板:

    #include<bits/stdc++.h>
    using namespace std;
    int n,m;
    int fa[5005];
    inline int father(int t){
        if(fa[t]!=t) fa[t]=father(fa[t]);
        return fa[t];
    }
    inline void u(int l,int r){
        int fl=father(l);
        int fr=father(r);
        if(fl!=fr) fa[fl]=fr; 
    }
    struct ed{
        int len;
        int begin,end;
    }dis[200005];
    inline bool cmp(ed a,ed b){
        return a.len<b.len;
    }
    int sum;
    int num;
    int main(){
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
            fa[i]=i;
        for(int i=1;i<=m;i++){
            int x,y,z;
            scanf("%d%d%d",&x,&y,&z);
            dis[i].begin=x;
            dis[i].end=y;
            dis[i].len=z;
        }sort(dis+1,dis+1+m,cmp);
        for(int i=1;i<=m;i++){
            if(father(dis[i].begin)!=father(dis[i].end)){
                u(dis[i].begin,dis[i].end);
                sum+=dis[i].len;
                num++;
            }
            if(num==n-1){
                cout<<sum<<endl;
                return 0;
            }
        }
        cout<<"orz";
        return 0;
    } 
  • 相关阅读:
    HBase-MapReduce
    HBase API 操 作
    HBase-Shell-数据结构-原理
    HBase-简介-安装配置
    Kafka 与 Flume
    kafka-Streams
    Kafka-producer拦截器(interceptor)
    Kafka-API
    Kafka-工作流程分析
    day06 Java面向对象
  • 原文地址:https://www.cnblogs.com/648-233/p/10776111.html
Copyright © 2011-2022 走看看