zoukankan      html  css  js  c++  java
  • 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驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    [vp]ARC068
    [vp]ARC067
    Vision transformer
    rosetta使用silent格式储存PDB结构,节省本地存储
    CentOS7下安装JDK详细过程
    jdk下载Oracle共享账号
    虚拟机地址发生变化
    字节跳动面试题,给你一个每一项都是数值混乱顺序的数组,只要里面正确顺序的值输出。如[5,1,3,6,2,7],只要[1,2,7]
    spring boot web 第一个项目新建
    xmind-excel
  • 原文地址:https://www.cnblogs.com/itdef/p/13152037.html
Copyright © 2011-2022 走看看