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

    Kruskal

    前置:并查集

    struct node
    {
        ll u, v, w;
    } t[200005];
    
    ll fa[200005], n, m, ans, eu, ev, cnt;
    
    inline bool cmp(node a, node b)
    {
        return a.w < b.w;
    }
    
    inline ll find(ll x)
    {
        if (fa[x] == x)
            return x;
        return fa[x] = find(fa[x]);
    }
    
    inline void K()
    {
        sort(t, t + m, cmp);
        for (int i = 1; i <= m; ++i)
        {
            eu = find(t[i].u), ev = find(t[i].v);
            if (eu == ev)
                continue;
            ans += t[i].w;
            fa[ev] = eu;
            if (++cnt == n)
                break;
        }
    }
    
    int main()
    {
        n = read();
        m = read();
        for (int i = 1; i <= n; ++i)
            fa[i] = i;
        for (int i = 1; i <= m; ++i)
            t[i].u = read(), t[i].v = read(), t[i].w = read();
        K();
        printf("%lld
    ", ans);
        Edison Ba;
    }
    

    Prim

    int ans, cnt, now = 1; //Prim
    void prim()
    {
        for (int i = 2; i <= n; ++i)
            dis[i] = MAXN;
    
        for (int i = head[1]; i; i = t[i].nxt)
            dis[t[i].to] = min(dis[t[i].to], t[i].w);
    
        while (++cnt < n)
        {
            int minn = MAXN;
            vis[now] = 1;
            for (int i = 1; i <= n; ++i)
            {
                if (vis[i])
                    continue;
                if (minn > dis[i])
                {
                    minn = dis[i];
                    now = i;
                }
            }
    
            ans += minn;
    
            for (int i = head[now]; i; i = t[i].nxt)
            {
                int y = t[i].to, z = t[i].w;
                if (vis[y])
                    continue;
                if (dis[y] > z)
                {
                    dis[y] = z;
                }
            }
        }
    }
    
  • 相关阅读:
    function函数
    for的衍生对象
    前端发展史
    字符串替换
    正则
    DOM和BOM的区别与联系
    BOM
    DOM
    css单位分析
    API and Web API
  • 原文地址:https://www.cnblogs.com/EdisonBa/p/14948872.html
Copyright © 2011-2022 走看看