• poj 1861 Network 最小生成树 模板


    地址 http://poj.org/problem?id=1861

    解答 kruscal模板题目 就是输出稍微改下

    吐槽下,poj题目的样例居然是错的

    // poj1861.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
    //
    
    #include <iostream>
    #include <vector>
    #include <algorithm>
    
    using namespace std;
    
    /*
    5 8
    1 2 5
    1 4 2
    1 5 1
    2 3 6
    2 4 3
    3 4 5
    3 5 4
    4 5 6
    */
    
    const int N = 15010;
    const int M = 15010;
    const int INF = 0x3f3f3f3f;
    
    int f[N];
    
    struct EDGE {
        int a, b, w;
    }edge[M];
    
    bool cmp(const struct EDGE& a, const struct EDGE& b) {
        return a.w < b.w;
    }
    
    
    int find(int x) {
        return f[x] == x ? x : f[x] = find(f[x]);
    }
    
    int n, m;
    
    void kruscal()
    {
        int maxlen = -999999;
        vector<pair<int, int>> ans;
        sort(edge, edge + m,cmp);
    
        for (int i = 1; i <= n; i++) f[i] = i;
    
        int cnt = 0;
    
        for (int i = 0; i < m; i++) {
            int a = edge[i].a; int b = edge[i].b; int w = edge[i].w;
            a = find(a); b = find(b);
            if (a != b) {
                f[a] = b;
                //cout << a << b << endl;
                maxlen = max(maxlen, w);
                pair<int, int> tmp = make_pair(edge[i].a, edge[i].b);
                ans.push_back(tmp);
                cnt++;
            }
        }
    
        cout << maxlen << endl;
        cout << ans.size() << endl;
    
        for (int i = 0; i < ans.size();i++) {
            cout << ans[i].first << " " << ans[i].second << endl;
        }
    
    
    
        return;
    }
    
    int main()
    {
        cin >> n >> m;
    
        for (int i = 0; i < m; i++) {
            cin >> edge[i].a >> edge[i].b >> edge[i].w;
        }
    
        kruscal();
    
        return 0;
    }
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    [Apio2014]回文串
    省队集训day6 C
    省队集训day6 B
    省队集训Day3 light
    省队集训Day3 tree
    多串匹配
    ubuntu卸载福昕阅读器
    greenlet
    python multithread task_done
    mysql参数调优
  • 原文地址:https://www.cnblogs.com/itdef/p/13152037.html
Copyright © 2020-2023  润新知